4

有没有办法确定一个集合是否至少包含另一个集合中的一个元素?

4

3 回答 3

9

您可以使用 Any()。

var listA = new List<int>();
var listB = new List<int>();

bool hasCommonItem = listA.Any(i => listB.Contains(i));

此外,如有必要,您可以编写一个IEqualityComparer实现将其作为参数传递给 Contains()。

于 2013-04-09T12:08:03.133 回答
8

当然有。

var sourceCollection = GetSourceCollection();
var otherCollection = GetAnotherCollection();

var hasAtLeastOne = sourceCollection.Intersect(sourceCollection).Any();

我假设您的集合属于同一类型:IEnumerable<T>具有相同的T通用参数。

它会sourceCollection首先加载整个元素,然后一次获取一个元素,otherCollection直到找到第一个公共元素。

于 2013-04-09T12:08:21.967 回答
0
col1.Any(x => col2.Any(y => x==y));
于 2013-04-09T12:08:16.280 回答