[英]See items that match in two list
免得說我有兩個清單
清單 1:
“湯姆”、“弗蘭克”、“萊西”
清單 2:
“弗蘭克”、“湯姆”
顯示 Tom 和 Fran 被重復需要的查詢是什么?
我要比較的列表非常大,如果我執行以下操作:
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.