Comparez la différence entre deux listes

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.