IList<T>没有"where"。

10

在我的工作中的一个特定项目中,我有一个返回IList的方法。但是这个接口并没有包含where或者FindAll过滤器。然而,当我打开一个新项目时,IList包含了所有这些功能。这是什么区别呢?

5个回答

39

你是否导入了 System.Linq?


@bileyazan - 我同意@Will Dean的观点,接受SO上帮助你解决问题的答案非常重要。这不仅会提高回答者的声誉,还能让未来的谷歌搜索者知道哪个答案帮助你解决了问题。 - Dave McClelland

6

不对。 IEnumerable<T> 有一个“where”扩展方法。

假设您的项目是 .Net 3.5 或更高版本,您需要使用 using System.Linq;


你的意思是 IEnumerable<T>。:) 简单的旧版 IEnumerable 不支持 LINQ - 你必须先使用 Cast/OfType - Noldorin
@Noldorin:是的,我实际上有 <T>,但我忘记将其放入代码块中,结果 StackOverflow 将其丢失了...可能被渲染为 HTML 标签。谢谢 :) - Brian Genisio

2

1

检查已打开的框架的.NET Framework,可能是.NET Fx 2。

System.Linq添加在3.5中


1

这里有一个关于扩展方法的基本讨论。正如其他人所提到的,Where方法是在System.Linq命名空间中找到的扩展方法,因此您需要导入它,以便Intellisense检测到这些方法的存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接