将两个列表与LINQ(查询语法或其他)进行比较的最佳方式(平均)
var A = new [] { 1, 2, 3, ... };
var B = new [] { 4, 1, 5, ... };
bool match =
// Some LINQ expression
当第一个列表中的至少一个元素(在这种情况下为1)等于第二个元素中的元素时,match
将为真?我不需要知道有多少场比赛,甚至是哪场比赛,只是至少有一场比赛。
答案 0 :(得分:32)
当然有。
A.Intersect(B).Any();
Intersect
在最不期望的情况下始终有用。
答案 1 :(得分:6)
您可以使用Intersect
,但这会计算您不需要的所有匹配项。所以Any
更好,因为它会短路:
bool match = A.Any(a => B.Any(b => b == a));
答案 2 :(得分:3)
您也可以使用
A.Any(x => B.Contains(x))
答案 3 :(得分:2)
您正在寻找Intersect
和Any
bool match = A.Intersect(B).Any();