Quel est le moyen le plus simple de comparer les éléments de deux listes dites A et B l'un avec l'autre, et d'ajouter les éléments présents dans B à A uniquement s'ils ne sont pas présents dans A?
Pour illustrer cela, prenez la liste A = {1,2,3} la liste B = {3,4,5}
Donc, après l'opération AUB, je veux la liste A = {1,2,3,4,5}
S'il s'agit d'une liste, vous pouvez également utiliser la méthode AddRange .
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
listA.AddRange(listB); // listA now has elements of listB also.
Si vous avez besoin d'une nouvelle liste (et d'exclure le doublon), vous pouvez utiliser nion
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listFinal = listA.Union(listB);
Si vous avez besoin d'une nouvelle liste (et inclure le doublon), vous pouvez utiliser Concat
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listFinal = listA.Concat(listB);
Si vous avez besoin d'objets communs, vous pouvez utiliser Intersection .
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4};
var listFinal = listA.Intersect(listB); //3,4
Le moyen le plus simple consiste à utiliser la méthode Union
de LINQ:
var aUb = A.Union(B).ToList();
Je pense que c'est tout ce que vous devez vraiment faire:
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listMerged = listA.Union(listB);