14

如何使用 C# 中的 LINQ 检查列表是否包含另一个列表中存在的元素?我不想使用 for/while 循环。

所以,如果 List1 有 A、B、C,而 List2 有 B、1、2,那么我会返回 true。

4

2 回答 2

35

尝试这个:

List<string> a = ...
List<string> b = ...
var inComon = a.Intersect(b).Any();
于 2012-12-05T02:53:07.367 回答
14

使用Enumerable.Any 方法

List<string> l1 = new List<string> { "1", "2" };
List<string> l2 = new List<string> { "1", "3" };
var result = l2.Any(s => l1.Contains(s));

我会说该Intersect方法(请参阅dasblinkenlight的回答) +Any必须比Contains+更好Any。使用起来肯定AnyCount.

于 2012-12-05T02:53:34.237 回答