我想检查集合中某些给定项目的发生情况,并认为它的工作原理如下但不是
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中。我的错误在哪里?
答案 0 :(得分:3)
这应该有效:
return otherCollection.Any(collection.Contains);
您不需要任何演员来调用Contains
方法,因为已有extension method以IEnumerable<T>
作为第一个参数。