Comparer deux listes en C#
-
Comparez des listes pour trouver des différences avec la méthode Linq en
C#
-
Comparez des listes pour trouver des différences avec la fonction
List.Contains()
enC#
Ce didacticiel abordera les méthodes permettant de comparer deux listes pour trouver des différences dans C#.
Comparez des listes pour trouver des différences avec la méthode Linq en C#
Considérons le scénario suivant, nous avons 2 listes, list1
et list2
, et nous voulons savoir quels éléments de list1
ne sont pas présents dans list2
et quels éléments de list2
ne sont pas présents dans list1
. Cela peut être fait à l’aide de la fonction Except()
de Linq. La requête intégrée Linq ou langage est utilisée pour interroger les structures de données en C#. La fonction Except()
renvoie un ensemble d’éléments d’une liste non présents dans l’autre liste. L’exemple de code suivant nous montre comment comparer deux listes pour les différences avec Linq en 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);
}
}
}
}
Production:
Present in List1 But not in List2 1 2 Present in List2 But not in List1 5 6
Nous avons comparé les listes list1
et list2
pour leurs différences dans le code ci-dessus. Nous avons d’abord stocké les éléments présents dans list1
mais pas dans list2
dans la nouvelle liste firstNotSecond
. Nous avons ensuite stocké les éléments présents dans list2
mais pas dans list1
dans la nouvelle liste secondNotFirst
. Finalement, nous avons imprimé les éléments des listes firstNotSecond
et secondNotFirst
. Le seul inconvénient est que toutes les valeurs répétées dans une liste qui ne sont pas présentes dans l’autre liste ne seront imprimées qu’une seule fois.
Comparez des listes pour trouver des différences avec la fonction List.Contains()
en C#
La fonction List.Contains()
permet de déterminer si un élément est présent ou non dans une liste en C#. La fonction List.Contains(x)
renvoie true si l’élément x
est présent dans la liste et renvoie false si l’élément x
n’est pas présent. Nous pouvons utiliser la méthode List.Contains()
avec Linq pour déterminer quels éléments sont présents dans une liste et pas dans l’autre. L’exemple de code suivant nous montre comment comparer deux listes pour les différences avec la fonction List.Contains()
en 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);
}
}
}
}
Production:
Present in List1 But not in List2 1 1 2 Present in List2 But not in List1 5 6
Nous avons comparé les listes list1
et list2
pour leurs différences dans le code ci-dessus. Nous avons d’abord stocké les éléments présents dans list1
mais pas dans list2
dans la nouvelle liste firstNotSecond
. Nous avons ensuite stocké les éléments qui étaient présents dans list2
mais pas dans list1
dans la nouvelle liste secondNotFirst
. Finalement, nous avons imprimé les éléments des listes firstNotSecond
et secondNotFirst
. Ici, la sortie est répétée autant de fois que la valeur répétée. Cette méthode doit être préférée à la méthode précédente si nous voulons envisager de répéter des valeurs.
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