是否有资源解释如何实现LINQ to objects运算符?

时间:2011-02-11 15:35:45

标签: linq linq-to-objects

我刚才有一个关于使用.Except和.Any的有趣交流,以及它们之间的性能差异。

我想知道是否有在线资源可以解释LINQ对象的不同实现,以及性能影响。

我检查了MSDN和hookedonlinq.com,并没有提到.Except构建一个HashSet,而使用array.Any(item => otherarray.Contains(item))将简单地迭代每个项目的第二个数组 - 性能O(n²)for .Any vs O(n)for .Except

2 个答案:

答案 0 :(得分:4)

绝对 - 我的Edulinq系列:)

更确切地说,这是关于如何实现LINQ to Objects 的博客系列,并围绕性能等进行了各种讨论。我不能保证“真正的”实现总是采用相同的方式路线...但我不希望它们有太大的不同。

除了单独覆盖每个运营商之外,最新的帖子更为一般,谈论性能权衡等。

答案 1 :(得分:2)

虽然没有一个消息来源如何实现框架(反射器除外),但有EduLinq,由Jon Skeet提供。这是一个很长的(近50个博客条目)重新实现所有LINQ运算符来解释它是如何工作的。