web-dev-qa-db-fra.com

Le moyen le plus simple de former une union de deux listes

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}

66
R.S.K

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
116
Tilak

Le moyen le plus simple consiste à utiliser la méthode Union de LINQ:

var aUb = A.Union(B).ToList();
27
dasblinkenlight

Utiliser LINQ's nion

Enumerable.Union(ListA,ListB);

ou

ListA.Union(ListB);
8
Prabhu Murthy

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);
5
code4life