【发布时间】:2009-03-10 09:18:47
【问题描述】:
我刚刚查看了其中一个具有命名模式“something-Linq”的库,希望获得更多关于如何以优雅的方式构建表达式树的知识 - 并且感到失望。因为我能找到的只是扩展 IEnumerable 的方法——当然是使用“普通”C# 代码。
现在我有一个问题:IEnumerable 的非表达式扩展真的证明库的名称中包含“Linq”吗?还是作者只是在炒作,试图为他的 IEnumerable 扩展库获得更多下载,而当在库名称中看到“Linq”时,我期待 IQueryable 和表达式是正确的?
编辑:
我认为 Linq-to-... 和 something-Linq 库之间存在差异。恕我直言 Linq-to-... 是 linq 提供程序库,something-Linq 是 linq 扩展。我认为 Linq 提供程序库可以选择是否在其结果中公开 IQueryable 或 IEnumerable - linq 扩展没有这种选择。就我而言,他们必须能够使用这两种提供程序库。这对我来说意味着所有 linq 扩展都必须提供 Queryable 和 Enumerable 扩展。
编辑 2:
Jon 和我在他的回答中进行了非常热烈的讨论。我自愿创建了一篇博文,希望能澄清一些事情: Mapping the uncharted waters of LINQ
编辑 3:
对于任何对讨论感兴趣的人 - 我真的鼓励你去我的博客文章。跳过帖子本身,因为它太可怕了 - 直接进入 Jon 的讨论和解释。
【问题讨论】:
标签: c# .net linq extension-methods