【发布时间】:2013-04-09 12:05:37
【问题描述】:
有没有办法确定一个集合是否至少包含另一个集合中的一个元素?
【问题讨论】:
有没有办法确定一个集合是否至少包含另一个集合中的一个元素?
【问题讨论】:
您可以使用 Any()。
var listA = new List<int>();
var listB = new List<int>();
bool hasCommonItem = listA.Any(i => listB.Contains(i));
此外,如果需要,您可以编写一个IEqualityComparer 实现,将其作为参数传递给 Contains()。
【讨论】:
当然有。
var sourceCollection = GetSourceCollection();
var otherCollection = GetAnotherCollection();
var hasAtLeastOne = sourceCollection.Intersect(sourceCollection).Any();
我假设您的集合属于同一类型:IEnumerable<T> 具有相同的 T 泛型参数。
它将首先加载整个sourceCollection,然后从otherCollection 一次获取一个元素,直到找到第一个公共元素。
【讨论】:
col1.Any(x => col2.Any(y => x==y));
【讨论】: