两个候选人的方法是Enumerable.Where

时间:2012-08-27 09:10:19

标签: c# .net .net-4.0

screenshot

有没有人遇到过这个问题?我有两个相同的候选方法Enumerable.Where 什么是Func'2和Func'3?

当我尝试过滤可枚举的

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

我有一个错误:

无法解析方法'where(lambda expression)',候选者

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 个答案:

答案 0 :(得分:3)

快速查看MSDN会告诉您实际上有两次重载。

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

答案 1 :(得分:0)

Func'3Func'2表示它是具有2和3类型参数的泛型类。

我假设首先是Func<T, bool>,其中T是您之前定义的类型。 和Func<T, int, bool>相同的加索引器。

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

答案 2 :(得分:0)

尝试投射到IQueryable。像这样:itemsToShow.AsQueryable()

答案 3 :(得分:0)

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