免得說我有兩個列表看到與兩個列表的項目
列表1:
「湯姆」, 「弗蘭克」, 「雷斯」
列表2:
「弗蘭克」, ‘湯姆’
需要怎麼做才能表明正在重複湯姆和弗蘭查詢?
,我試圖比較這些名單是非常大的,如果我這樣做:
var q = from a in List1
from b in List2
where a.Name == b.Name
select a;
這需要很長的時間。
免得說我有兩個列表看到與兩個列表的項目
列表1:
「湯姆」, 「弗蘭克」, 「雷斯」
列表2:
「弗蘭克」, ‘湯姆’
需要怎麼做才能表明正在重複湯姆和弗蘭查詢?
,我試圖比較這些名單是非常大的,如果我這樣做:
var q = from a in List1
from b in List2
where a.Name == b.Name
select a;
這需要很長的時間。
要查看值跨列表複製,您可以使用
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
似乎是適當的行動過程。如果你正在處理一個共同的關鍵匹配對象的列表,你可以選擇加入名單和項目的成果。
你應該使用Intersect:
var items = List1.Intersect(List2); // Tom, Frank
您可以使用intersect:
List<string> list3 = list1.Intersect(list2).ToList();