如何在lambda表达式中创建完全跟随的两个?
foreach (var item in list1)
{
foreach (var item2 in list2)
{
if (item.number == item2.number)
{
return false;
}
}
}
答案 0 :(得分:3)
由于您只是检查是否有任何一个项目匹配,因此您可以使用Any()
。
return !list1.Any( item1 => list2.Any(item2 => item2 == item1 ));
答案 1 :(得分:2)
我只会使用可用于列表的Intersect
函数,这将返回2个列表中常见的所有元素。如果您只想查看是否存在,那么您可以通过查看计数来轻松完成。
int count = List1.Select(s => s.number).Intersect(List2.Select(s => s.number)).Count;
如果您想知道两个列表中哪些元素是唯一的,请使用Exclude方法。
var uniqueItems = List1.Select(s => s.number).Except(List2.Select(s => s.number));
答案 2 :(得分:0)
你走了!!
使用Linq方法语法:
!list1.Any(item => list2.Any(item2 => item.number == item2.number))
使用Linq查询语法:
!(from item in list1
from item2 in list2
where item.number==item2.number select item).Any()