2009-08-23 14 views
6

Jak mogę użyć Linq do znalezienia wspólnych elementów między 2 ogólnymi listami typu ciągów.Lista Linq <string> Unia

Załóżmy, że mam następujący kod, chciałbym, aby uzyskać listę < string>, które zawierają ITEM2 i 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"); 

Odpowiedz

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

będzie działać dla rodzajów wartości.

5

Wiem, że LINQ został oznaczony, ale tylko dla kompletności; jeśli LINQ nie jest opcją;

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

Jak o:

var List3 = list1.Intersect(list2) 
+2

Wydaje duże porcje odpowiedź przecinają się z moją odpowiedź. – Kobi