Compare duas listas em C#
-
Compare listas para encontrar diferenças com o método Linq em
C#
-
Compare listas para encontrar diferenças com a função
List.Contains()
emC#
![Compare duas listas em C#](/img/Csharp/feature-image---compare-two-lists-in-csharp.webp)
Este tutorial discutirá métodos para comparar duas listas para encontrar diferenças em C#.
Compare listas para encontrar diferenças com o método Linq em C#
Considere o seguinte cenário, temos 2 listas, list1
e list2
, e queremos saber quais elementos da list1
não estão presentes em list2
e quais elementos de list2
não estão presentes em list1
. Isso pode ser feito com a ajuda da função Except()
no Linq. O Linq ou consulta integrada de linguagem é usada para consultar estruturas de dados em C#. A função Except()
retorna um conjunto de elementos de uma lista não presente na outra lista. O exemplo de código a seguir nos mostra como comparar duas listas para diferenças com Linq em C#.
using System;
using System.Collections.Generic;
using System.Linq;
namespace compare_lists {
class Program {
static void Main(string[] args) {
List<int> list1 = new List<int> { 1, 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
List<int> firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();
Console.WriteLine("Present in List1 But not in List2");
foreach (var x in firstNotSecond) {
Console.WriteLine(x);
}
Console.WriteLine("Present in List2 But not in List1");
foreach (var y in secondNotFirst) {
Console.WriteLine(y);
}
}
}
}
Resultado:
Present in List1 But not in List2 1 2 Present in List2 But not in List1 5 6
Comparamos as listas list1
e list2
quanto às diferenças no código acima. Primeiro armazenamos os elementos presentes em list1
, mas não em list2
na nova lista firstNotSecond
. Em seguida, armazenamos os elementos presentes em list2
, mas não em list1
na nova lista secondNotFirst
. No final, imprimimos os elementos das listas firstNotSecond
e secondNotFirst
. A única desvantagem é que quaisquer valores repetidos em uma lista que não estejam presentes na outra lista serão impressos apenas uma vez.
Compare listas para encontrar diferenças com a função List.Contains()
em C#
A função List.Contains()
é usada para determinar se um elemento está presente em uma lista ou não em C#. A função List.Contains(x)
retorna verdadeiro se o elemento x
estiver presente na lista e retorna falso se o elemento x
não estiver presente. Podemos usar o método List.Contains()
com o Linq para determinar quais elementos estão presentes em uma lista e não na outra. O exemplo de código a seguir nos mostra como podemos comparar duas listas para diferenças com a função List.Contains()
em C#.
using System;
using System.Collections.Generic;
using System.Linq;
namespace compare_lists {
class Program {
static void Main(string[] args) {
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
var firstNotSecond = list1.Where(i => !list2.Contains(i)).ToList();
var secondNotFirst = list2.Where(i => !list1.Contains(i)).ToList();
Console.WriteLine("Present in List1 But not in List2");
foreach (var x in firstNotSecond) {
Console.WriteLine(x);
}
Console.WriteLine("Present in List2 But not in List1");
foreach (var y in secondNotFirst) {
Console.WriteLine(y);
}
}
}
}
Resultado:
Present in List1 But not in List2 1 1 2 Present in List2 But not in List1 5 6
Comparamos as listas list1
e list2
quanto às diferenças no código acima. Primeiro armazenamos os elementos presentes em list1
, mas não em list2
na nova lista firstNotSecond
. Em seguida, armazenamos os elementos que estavam presentes em list2
, mas não em list1
na nova lista secondNotFirst
. No final, imprimimos os elementos das listas firstNotSecond
e secondNotFirst
. Aqui, a saída é repetida tantas vezes quanto o valor de repetição. Este método deve ser preferido em relação ao método anterior se quisermos considerar a repetição de valores.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn