3

截屏

有没有人遇到过这个问题?我有两个相同的候选方法 Enumerable。Func'2 和 Func'3 在哪里?

当我尝试过滤可枚举时

var subItems = itemsToShow.Where(item => item.Visible);

我有一个错误:

无法解析方法“Where(lambda 表达式)”,候选者是

System.Collection.Generic.IEnumerable<T> Where<T>(this System.Collection.Generic.IEnumerable<T>, System.Func'2) (in calss Enumerable)
System.Collection.Generic.IEnumerable<T> Where<T>(this System.Collection.Generic.IEnumerable<T>, System.Func'3) (in calss Enumerable)

在 .Net 3.5 上这项工作完美

4

5 回答 5

3

快速浏览MSDN会告诉您实际上有两个重载。

一个只是基于谓词进行过滤,第二个重载还考虑了枚举中项目的索引。

于 2012-08-27T09:12:40.173 回答
0

Func'3并且Func'2meens 是一个具有 2 个和 3 个类型参数的泛型类。

我假设首先是你之前定义的类型Func<T, bool>在哪里。TFunc<T, int, bool>相同的加索引器。

Func<T, int, bool>- 它是一个谓词,接受两个类型的参数Tint返回bool

于 2012-08-27T09:12:54.993 回答
0

只需构建解决方案并查看详细错误。我的是一个可以为空的布尔值。

于 2016-02-19T14:40:00.653 回答
0

它发生在我身上是因为我试图.Contains在一种List类型上使用,而我需要的是.Any

例如

var myObjectsList = new List<MyClass>();

// instead of this
myObjectList.Contains(x => x.Id == 1)
// use this
myObjectList.Any(x => x.Id == 1)
于 2021-10-28T09:21:05.923 回答
-1

尝试转换为 IQueryable。像这样: itemsToShow.AsQueryable()

于 2014-05-28T21:43:27.840 回答