在这个问题中,我们要确定一个泛型集合 IEnumerable<T>
是否包含另一个 IEnumerable<T>
的任何对象。为了解决这个问题,我们可以使用 LINQ 的 Any()
和 Intersect()
方法。
首先,我们需要确保已经引入了 System.Linq
命名空间。
using System.Linq;
接下来,我们可以编写一个扩展方法来解决这个问题:
public static bool ContainsAny<T>(this IEnumerable<T> source, IEnumerable<T> other)
{
return other.Any(source.Contains);
}
现在,我们可以使用这个扩展方法来检查一个 IEnumerable<T>
是否包含另一个 IEnumerable<T>
的任何对象:
IEnumerable<int> source = new[] { 1, 2, 3, 4, 5 };
IEnumerable<int> other = new[] { 3, 6, 9 };
bool containsAny = source.ContainsAny(other);
在这个例子中,source
包含 other
的对象,所以 containsAny
的值为 true
。
这个方法的时间复杂度为 O(n),其中 n 是 other
集合的元素数量。
领取专属 10元无门槛券
手把手带您无忧上云