确定两个集合是否共享至少一个元素

Ale*_*ecu 4 c# linq

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

las*_*s88 9

你可以使用Any().

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

bool hasCommonItem = listA.Any(i => listB.Contains(i));
Run Code Online (Sandbox Code Playgroud)

此外,您可以编写IEqualityComparer实现,以便在必要时将其作为参数传递给Contains().


Mar*_*zek 8

当然有.

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

var hasAtLeastOne = sourceCollection.Intersect(sourceCollection).Any();
Run Code Online (Sandbox Code Playgroud)

我假设你的集合属于同一类型:IEnumerable<T>具有相同的T泛型参数.

它将sourceCollection首先加载整个,然后一次获取一个元素,otherCollection直到找到第一个常见元素.