none
Linq RRS feed

  • Pergunta

  • Galera preciso fazer uma comparação de datas do registros duplicados, ou seja, preciso varrer minha coleção e comparar as datas. O produto com a data mais antiga eu tiro da coleção, como posso fazer isso ? Cheguei até o ponto de retirar os duplicados, mas ainda preciso comparar as datas... Segue o código:

    var produtosDuplicados = listaProdutos.GroupBy(a => a.nmProdutoCompleto).Where(x => x.Count() > 1)
                                    .Select(x => x.Key)
                                    .ToList(); 

    Obrigado


    SirSmart

    quinta-feira, 19 de maio de 2016 17:47

Todas as Respostas

  • Para pegar o mais antigo usando LINQ, veja se o seguinte comando funciona:

    var produto = listaProdutos.OrderBy(p => p.Data).First();

    quinta-feira, 19 de maio de 2016 18:07
  • Não funcionou, até porque preciso saber quais são os caras repetidos e depois filtrar por data... Como ficaria ?

    Obrigado


    SirSmart

    quinta-feira, 19 de maio de 2016 18:20
  • Olá SirSmart!

    Para obter uma lista sem duplicados você pode usar  o metodo Disctint(),

    logo...

    var produtoMaisAntigo= produtosSemDuplicados.OrderBy(p=>p.Data).First();
    
    //Para remover o produto da lista sem duplicados...
    produtosSemDuplicados.RemoveAll(p=>p.Id==produtoMaisAntigo.Id);
    

    boa sorte.

    quarta-feira, 25 de maio de 2016 20:46