繁体   English   中英

Linq的GroupBy方法如何延迟执行?

[英]How Linq's GroupBy method has a deferred execution?

我发现了这个问题,但它还没有答案...... Linq Group使用什么算法?

由于您必须遍历整个源集合以了解所有组,因此如何延迟其执行? 它只会迭代源集合一次吗? 它是否使用缓冲区?

(我假设我们只讨论LINQ to Objects。)

它仍然延迟,直到你开始要求结果,它根本不会读取源集合。 但是,是的,一旦你要求第一个结果,它确实会读取整个集合。 它只读取一次源,它只询问每个元素的分组键一次。 正如您所怀疑的那样,所有结果都会缓存在内存中。

关于GroupBy的Edulinq博客文章 (Edulinq基本上是为了教育而重新实现LINQ to Objects)显示了一个示例实现,尽管就ToLookup

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM