以免我说有两个清单
的List1:
“汤姆”, “坦率”, “雷斯”
列表2:
“弗兰克”, “汤姆”
显示汤姆和弗兰被重复所需的查询是什么?
我想要比较的列表非常大,如果我做了类似的事情:
var q = from a in List1
from b in List2
where a.Name == b.Name
select a;
这需要很长时间。
答案 0 :(得分: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
似乎是适当的行动方案。如果您正在处理公共密钥上的匹配对象列表,您可以选择加入列表并投影结果。
答案 1 :(得分:3)
您应该使用Intersect:
var items = List1.Intersect(List2); // Tom, Frank
答案 2 :(得分:3)
您可以使用intersect:
List<string> list3 = list1.Intersect(list2).ToList();