2011-05-26 36 views
0

免得說我有兩個列表看到與兩個列表的項目

列表1:

「湯姆」, 「弗蘭克」, 「雷斯」

列表2:

「弗蘭克」, ‘湯姆’

需要怎麼做才能表明正在重複湯姆和弗蘭查詢?

,我試圖比較這些名單是非常大的,如果我這樣做:

var q = from a in List1 
     from b in List2 
     where a.Name == b.Name 
     select a; 

這需要很長的時間。

回答

4

要查看值跨列表複製,您可以使用

var results = list1.Intersect(list2); 

如果你是否則興趣相匹配的項目,一起去做的東西,你可以使用Join

var results = from item1 in list1 
       join item2 in list2 
       on item1 equals item2 
       select new 
       { 
        // include what you want here 
       }; 

在你的情況,因爲你正在處理字符串列表,Intersect似乎是適當的行動過程。如果你正在處理一個共同的關鍵匹配對象的列表,你可以選擇加入名單和項目的成果。

3

你應該使用Intersect

var items = List1.Intersect(List2); // Tom, Frank 
3

您可以使用intersect

List<string> list3 = list1.Intersect(list2).ToList(); 
相關問題