Linq to Objects:GroupBy 是不是保留元素的顺序?
Posted
技术标签:
【中文标题】Linq to Objects:GroupBy 是不是保留元素的顺序?【英文标题】:Linq to Objects: does GroupBy preserve order of elements?Linq to Objects:GroupBy 是否保留元素的顺序? 【发布时间】:2010-11-29 23:09:54 【问题描述】:LINQ to Objects 中的 Enumerable.GroupBy 是否保留组中元素的顺序?
【问题讨论】:
Preserving order with LINQ的可能重复 【参考方案1】:在MSDN找到答案:是的。
IGrouping<TKey, TElement>
对象的生成顺序基于 source 中生成每个IGrouping<TKey, TElement>
的第一个键的元素的顺序。分组中的元素按照它们在源代码中出现的顺序产生。
【讨论】:
不是说它与问题直接相关,而是因为它可能是人们在发现事情不井井有条时落入的问题,因此可能有兴趣注意到 PLINQ 不是这种情况,除非明确要求. 该文档仅适用于 LINQ-to-objects。对于 LINQ-to-SQL、LINQ-to-XML 或 LINQ-to-anything-else 的特定实现,情况可能并非如此。 @aboveyou00 在尝试按组键以外的其他字段对组进行排序数小时后,您的评论挽救了我的一天。 LINQ to mysql 通过组键自动对组进行排序!我不得不使用 ToList 将有序查询带到本地对象,然后对其进行分组。谢谢。以上是关于Linq to Objects:GroupBy 是不是保留元素的顺序?的主要内容,如果未能解决你的问题,请参考以下文章
LINQ to SQL class LINQ to sql Objects?
Linq之旅:Linq入门详解(Linq to Objects)