c# - LINQ 方法是扩展方法吗?

标签 c# .net linq extension-methods

我想了解 LINQ 并对此事进行了一些研究,发现 IEnumerableIQueryable 具有 LINQ 方法。但是,当我查看这些类型的文档时,我没有看到任何 LINQ 方法。

LINQ 方法扩展方法是否在运行时插入到 IEnumerable/IQueryable 类型中,如果是,为什么?

最佳答案

在 IEnumerable 上添加方法意味着所有从 IEnumerable 派生的类型都必须自己实现它们。现在有了扩展方法,我们可以将实现添加到接口(interface)中。

另一个副作用是,在引入 Linq 时,用 .NET 2.0 编写的代码仍然可以用 3.0 编译。否则,如果您在项目中的某处实现了 IEnumerable,那么您现在还必须在接口(interface)中实现所有新方法。

LINQ To 对象的 LINQ 方法在 Enumerable 上定义类。

此外,LINQ 搜索使用特定语法声明的方法,而不是基于接口(interface)或类的方法。您可能会找到 Edulinq有趣的 Jon Skeet 系列。

MSDN扩展方法链接。

关于c# - LINQ 方法是扩展方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138669/

相关文章:

java - 如何衡量C#和Java内存使用的差异?

c# - 实体数据模型从不同的数据库获取数据

java - 需要帮助将 C# 加密方法转换为 Java

c# - 使用 C# 中的 FtpWebRequest 计算/列出 FTP 目录中的所有文件

.net - 我如何最好地解决这个对象类型层次结构?某种枚举层次结构?

c# - 我如何知道 XML 标签的索引

c# - 展平 linq 查询的结果

c# - MustInherit 和抽象类的区别

.net - 如何从加载的 App.config 文件中检索 ApplicationSettings?

c# - Entity Framework 错误延迟加载