Comparar duas List e retornando uma com as diferenças – C#

Fala pessoal,

Esse é um daqueles posts que servem mais de lembrete para mim mesmo do que para divulgar algo mirabolante.

Se trata de um conjunto de expressões lambda para comparar duas List<> e retornar as diferenças para uma outra List<>.

Segue o código, e o print do resultado obtido:

            List<string> list1 = new List<string>(new string[]
            {"Maça", "Laranja", "Banana"});
            List<string> list2 = new List<string>(new string[] 
            { "Pêra", "Banana", "Laranja","Abacaxi" });

            var differences1 = list1.Except(list2).ToList();
            var differences2 = list2.Except(list1).ToList();
            var overAllDifferences = differences1.Union(differences2).ToList();

Comparação Lists

Espero que possa ser útil para alguém, alem de mim kk…

O código deste artigo foi baseado na thread c# – Quickest way to compare two List<> do site StackOverFlow

Anúncios

5 comentários

    1. O sistema de postagem removeu o parâmetro genérico do HashSet. Substituindo o sinal de maior e menor por colchetes, ficaria assim:

      var diff = new HashSet[string](list1);
      diff.SymmetricExceptWith(list2);

  1. Fala Herbert, blz?
    É bem comum precisarmos disso. Uma pergunta, porque não usou ‘var’ em todas as declarações e somente nas três ultimas?

    Abraços.

    Wennder Santos

Deixe um comentário :)

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s