我只是查看了其中一个具有命名模式“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:
乔恩和我在他的回答评论中进行了非常热烈的讨论。我自愿创建了一篇博文,希望能澄清一些事情: 绘制 LINQ 的未知水域
编辑3:
对于任何对讨论感兴趣的人——我真的鼓励你去我的博客文章。跳过帖子本身,因为它很可怕 - 直接进入 Jon 的讨论和解释。