Articles of linq

Use um delegado para o comparador de igualdade para Distinct () do LINQ

Eu tenho uma instrução LINQ Distinct () que usa meu próprio comparador personalizado, como este: class MyComparer : IEqualityComparer where T : MyType { public bool Equals(T x, T y) { return x.Id.Equals(y.Id); } public int GetHashCode(T obj) { return obj.Id.GetHashCode(); } } … var distincts = bundle.GetAllThings.Distinct(new MyComparer()); Tudo isso é bom e elegante […]

Lógica de ordenação personalizada no OrderBy usando o LINQ

Qual seria o caminho certo para classificar uma lista de strings onde eu quero que os itens que começam com um sublinhado ‘_’ estejam na parte inferior da lista, caso contrário, tudo é alfabético. Agora eu estou fazendo algo assim, autoList.OrderBy(a => a.StartsWith(“_”) ? “ZZZZZZ”+a : a )

O Linq Count () é mais rápido ou mais lento que List.Count ou Array.Length?

O método Linq Count( ) é mais rápido ou mais lento que List.Count ou Array.Length ?

Como aguardar uma lista de tarefas de forma assíncrona usando o LINQ?

Eu tenho uma lista de tarefas que eu criei assim: public async Task<IList> GetFoosAndDoSomethingAsync() { var foos = await GetFoosAsync(); var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList(); … } Usando .ToList() , todas as tarefas devem começar. Agora quero aguardar sua conclusão e devolver os resultados. Isso funciona no bloco acima … : var […]

Directory.GetFiles de certa extensão

Existe uma maneira de simplificar essa expressão linq, ou existe uma maneira melhor de fazer isso? Directory.GetFiles(dir, “*.*”, SearchOption.AllDirectories) .Where(s => s.EndsWith(“.jpg”, StringComparison.OrdinalIgnoreCase) || s.EndsWith(“.gif”, StringComparison.OrdinalIgnoreCase) || s.EndsWith(“.png”, StringComparison.OrdinalIgnoreCase) || …); Basicamente eu quero retornar todos os arquivos de uma certa extensão. Infelizmente, esse método não é muito flexível. Eu prefiro ser capaz de adicionar […]

Enumerando collections que não são inerentemente IEnumerable?

Quando você deseja enumerar recursivamente um object hierárquico, selecionando alguns elementos com base em alguns critérios, há vários exemplos de técnicas como “nivelamento” e, em seguida, filtragem usando o Linq: como os encontrados aqui: Texto do link Mas, quando você está enumerando algo como a coleção de controles de um formulário ou a coleção de […]

Usar o LINQ to SQL ajudará a impedir a injeção de SQL

Estou configurando um site público e a primeira coisa em mente é a injeção de SQL. Eu tenho alguns campos de texto que estou salvando e estou usando o linq para atualizar / gravar no database. Estou seguro usando o linq? Este exemplo está criando a conta do usuário. Data.MemberRegistrationDataContext context = new MemberRegistrationDataContext(); Data.tbl_Member_UserProfile […]

Ordem LINQ por coluna nula onde a ordem é ascendente e os nulos devem ser últimos

Estou tentando classificar uma lista de produtos pelo preço deles. O conjunto de resultados precisa listar produtos por preço de baixo a alto pela coluna LowestPrice . No entanto, esta coluna é anulável. Eu posso classificar a lista em ordem decrescente assim: var products = from p in _context.Products where p.ProductTypeId == 1 orderby p.LowestPrice.HasValue […]

Converter lista para dictionary usando linq e não se preocupar com duplicatas

Eu tenho uma lista de objects Person. Eu quero converter para um dictionary onde a chave é o primeiro e último nome (concatenado) e o valor é o object Person. A questão é que eu tenho algumas pessoas duplicadas, então isso explode se eu usar este código: private Dictionary _people = new Dictionary(); _people = […]

Calcular a diferença do item anterior com LINQ

Estou tentando preparar dados para um gráfico usando o LINQ. O problema que não consigo resolver é como calcular a diferença para o anterior. o resultado que eu espero é ID = 1, data = agora, DiffToPrev = 0; ID = 1, data = agora + 1, DiffToPrev = 3; ID = 1, data = […]