在我的工作中的一个特定项目中,我有一个返回IList的方法。但是这个接口并没有包含where或者FindAll过滤器。然而,当我打开一个新项目时,IList包含了所有这些功能。这是什么区别呢?
你是否导入了 System.Linq?
不对。 IEnumerable<T>
有一个“where”扩展方法。
假设您的项目是 .Net 3.5 或更高版本,您需要使用 using System.Linq;
IEnumerable<T>
。:) 简单的旧版 IEnumerable
不支持 LINQ - 你必须先使用 Cast
/OfType
。 - Noldorin<T>
,但我忘记将其放入代码块中,结果 StackOverflow 将其丢失了...可能被渲染为 HTML 标签。谢谢 :) - Brian Genisio检查已打开的框架的.NET Framework,可能是.NET Fx 2。
System.Linq添加在3.5中
这里有一个关于扩展方法的基本讨论。正如其他人所提到的,Where方法是在System.Linq命名空间中找到的扩展方法,因此您需要导入它,以便Intellisense检测到这些方法的存在。