是否有资源解释LINQ to objects操作符是如何实现的?
我刚刚就使用.Except与.Any以及它们之间的性能差异进行了一次有趣的交流 我想知道是否有在线资源解释LINQ对对象的不同实现,以及性能影响是什么是否有资源解释LINQ to objects操作符是如何实现的?,linq,linq-to-objects,Linq,Linq To Objects,我刚刚就使用.Except与.Any以及它们之间的性能差异进行了一次有趣的交流 我想知道是否有在线资源解释LINQ对对象的不同实现,以及性能影响是什么 我查看了MSDN和hookedonlinq.com,两人都没有提到这一点。Except构建了一个哈希集,而使用array.Any(item=>otherarray.Contains(item))将简单地为每个项迭代第二个数组-性能为O(n²)for.Any vs O(n)for.Except,因为没有具体实现框架的源代码(除了reflector)
我查看了MSDN和hookedonlinq.com,两人都没有提到这一点。Except构建了一个哈希集,而使用array.Any(item=>otherarray.Contains(item))将简单地为每个项迭代第二个数组-性能为O(n²)for.Any vs O(n)for.Except,因为没有具体实现框架的源代码(除了reflector),还有一个,由Jon Skeet提供。这是一个很长的过程(将近50篇博客文章)重新实现所有LINQ操作符来解释它是如何工作的。绝对-我的系列:) 更准确地说,这是一个关于如何实现LINQto对象的博客系列,其中有关于性能等的各种讨论。我不保证“真正的”实现总是采用相同的路线。。。但我不希望他们有很大的不同
除了对每个运营商进行单独报道外,最新的帖子更为笼统,讨论性能权衡等。+1到目前为止,您的博客系列阅读效果非常好。你会考虑根据这个系列写一本新书吗?“我想如果你真的这么做的话,那就太好了。”“关于如何处理它,有一些想法正在酝酿之中。”。别担心,会有事情发生的:)