检查集合中给定项目的发生

时间:2014-04-26 14:47:44

标签: c# .net

我想检查集合中某些给定项目的发生情况,并认为它的工作原理如下但不是

public static bool ContainsAny<T>(this IEnumerable<T> collection, IEnumerable<T> otherCollection)
{
        if (otherCollection == null)
            throw new ArgumentNullException("otherCollection", ExceptionResources.NullParameterUsed);
        if (collection == null)
            throw new ArgumentNullException("collection", ExceptionResources.ExtensionUsedOnNull);
        else
            return Enumerable.Any<T>(otherCollection, new Func<T, bool>(((Enumerable)collection).Contains<T>));
}

如果指定的集合包含任何otherCollection项,我希望为true,否则为false。 但是有一个错误告诉我,我无法转换system.collections.generic.iEnumerable&gt; T&gt;在system.linq.Enumberable中。我的错误在哪里?

1 个答案:

答案 0 :(得分:3)

这应该有效:

return otherCollection.Any(collection.Contains);

您不需要任何演员来调用Contains方法,因为已有extension methodIEnumerable<T>作为第一个参数。