Linq to Objects:GroupByは要素の順序を保持しますか?


回答:


146

MSDNで回答が見つかりました:はい。

IGrouping<TKey, TElement>オブジェクトは、それぞれの第一の鍵を生成した元の要素の順序に基づく順序で得られたれますIGrouping<TKey, TElement>。グループ化の要素は、ソースに表示される順序で生成されます


2
質問に直接関連しているわけではありませんが、順序が正しくないものを見つけているときに人々が陥る質問である可能性があるため、明示的に要求されない限り、PLINQには当てはまらないことに注意してください。
Ronan Thibaudau 2017

8
そのドキュメントはLINQ-to-objectsにのみ適用されます。LINQ-to-SQL、LINQ-to-XML、またはLINQ-to-anything-elseの特定の実装については、同じことが当てはまらない場合があります。
leviathanbadger

1
@ aboveyou00が、グループキー以外のフィールドでグループをソートしようとした後、コメントで私の日を救いました。LINQ to MySqlは、グループキーによってグループを自動的に並べ替えます!ToListを使用して、順序付けされたクエリをローカルオブジェクトに移動し、それをグループ化する必要がありました。ありがとうございました。
Ivan Ferrer Villa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.