2009-08-23 9 views
6

Comment puis-je utiliser Linq pour trouver des éléments communs entre 2 listes génériques de type string.Linq List <string> union

Par exemple, dire que j'ai le code suivant, je voudrais obtenir une liste de chaînes <> qui contiendrait item2 et item3:

List<string> List1 = new List<string>(); 
List<string> List2 = new List<string>(); 

List1.Add("item1"); 
List1.Add("item2"); 
List1.Add("item3"); 

List2.Add("item2"); 
List2.Add("item3"); 
List2.Add("item4"); 

Répondre

0
from item in list1 
where list2.Contains(item) 
select item 

fonctionnera pour les types de valeurs.

5

Je sais que LINQ a été étiqueté, mais seulement pour être complet; si LINQ n'est pas une option;

List<string> result = list1.FindAll(list2.Contains); 
1

Que diriez-vous:

var List3 = list1.Intersect(list2) 
+2

Il semble une grande partie de votre réponse entrecoupent avec ma réponse. – Kobi