有没有办法确定一个集合是否至少包含另一个集合中的一个元素?
问问题
1391 次
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 回答