J’essaie de vérifier la différence entre deux List
en c#
.
Exemple:
List FirstList = new List(); List SecondList = new List();
La FirstList
est remplie avec les valeurs suivantes:
FirstList.Add("COM1"); FirstList.Add("COM2");
La SecondList
est remplie avec les valeurs suivantes:
SecondList.Add("COM1"); SecondList.Add("COM2"); SecondList.Add("COM3");
Maintenant, je veux vérifier si certaines valeurs de la SecondList
sont égales à celles de la première FirstList
.
S’il existe des valeurs égales telles que: COM1 et COM2, qui figurent dans les deux listes, filtrez-les de la liste et ajoutez les valeurs restantes à une autre liste.
Donc, si je crée une nouvelle ThirdList
, elle ne sera remplie que par “COM3”, car les autres valeurs sont des doublons.
Comment puis-je créer un tel chèque?
Essayez d’utiliser la méthode d’extension Except LINQ, qui prend uniquement les éléments de la première liste qui ne figurent pas dans la seconde. Exemple est donné ci-dessous:
List ThirdList = SecondList.Except(FirstList).ToList();
Vous pouvez imprimer le résultat en utilisant le code suivant:
Console.WriteLine(ssortingng.Join(Environment.NewLine, ThirdList));
Ou
Debug.WriteLine(ssortingng.Join(Environment.NewLine, ThirdList));
Remarque: N’oubliez pas d’inclure: using System.Diagnostics;
impressions:
COM3
Vous pouvez utiliser Enumerable.Intersect
:
var inBoth = FirstList.Intersect(SecondList);
ou pour détecter des chaînes qui ne figurent que dans l’une des deux listes, Enumerable.Except
:
var inFirstOnly = FirstList.Except(SecondList); var inSecondOnly = SecondList.Except(FirstList);
Pour obtenir votre ThirdList
:
List ThirdList = inSecondOnly.ToList();
Que pour ce roi de la détente, vous pouvez utiliser la fonction Except
.
List newlist = List1.Except(List2).ToList();
ou vous pouvez le faire, de sorte que celui qui se trouve au-dessous crée une nouvelle liste trois qui contient des éléments qui ne sont pas communs dans list1 et list2
var common = List1.Intersect(List2); var list3 = List1.Except(common ).ToList(); list3.AddRange(List2.Except(common ).ToList());
ce qui précède est une aide complète lorsque list1 et list2 ont un élément differenct comme
List list1= new List (); List list2 = new List ();
La FirstList est remplie avec les valeurs suivantes:
list1.Add("COM1"); list1.Add("COM2"); list1.Add("COM4");
La seconde liste est remplie avec les valeurs suivantes:
list2 .Add("COM1"); list2 .Add("COM2"); list2 .Add("COM3");
en utilisant ci-dessus la liste de codes list3 contains COM4 and COM3.