J'essaie de vérifier la différence entre deux List<string>
dans c#
.
Exemple:
List<string> FirstList = new List<string>();
List<string> SecondList = new List<string>();
FirstList
est rempli avec les valeurs suivantes:
FirstList.Add("COM1");
FirstList.Add("COM2");
SecondList
est rempli avec les valeurs suivantes:
SecondList.Add("COM1");
SecondList.Add("COM2");
SecondList.Add("COM3");
Maintenant, je veux vérifier si certaines valeurs du SecondList
sont égales aux valeurs du FirstList
.
S'il existe des valeurs égales comme: COM1 et COM2, qui sont dans les deux listes, puis filtrez-les à partir de la liste et ajoutez les valeurs restantes à une autre liste.
Donc, si je crée un nouveau ThirdList
, il sera rempli avec "COM3" uniquement, car les autres valeurs sont des doublons.
Comment puis-je créer un tel chèque?
Essayez d'utiliser Sauf la méthode d'extension LINQ, qui prend uniquement les éléments de la première liste, qui ne sont pas présents dans la seconde. Un exemple est donné ci-dessous:
List<string> ThirdList = SecondList.Except(FirstList).ToList();
Vous pouvez imprimer le résultat à l'aide du code suivant:
Console.WriteLine(string.Join(Environment.NewLine, ThirdList));
Ou
Debug.WriteLine(string.Join(Environment.NewLine, ThirdList));
Remarque: N'oubliez pas d'inclure: using System.Diagnostics;
imprime:
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<string> ThirdList = inSecondOnly.ToList();
Que pour ce roi de reuqirement, vous pouvez utiliser la fonction Except
.
List<string> newlist = List1.Except(List2).ToList();
ou vous pouvez le faire, donc celui ci-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());
celui-ci est une aide complète lorsque list1 et list2 ont un élément différent comme
List<string> list1= new List<string>();
List<string> list2 = new List<string>();
La FirstList est remplie avec les valeurs suivantes:
list1.Add("COM1");
list1.Add("COM2");
list1.Add("COM4");
Le SecondList est rempli avec les valeurs suivantes:
list2 .Add("COM1");
list2 .Add("COM2");
list2 .Add("COM3");
en utilisant le code ci-dessus list3 contains COM4 and COM3.