Linq to Objects: Bewahrt GroupBy die Reihenfolge der Elemente auf?


Antworten:


146

Gefundene Antwort auf MSDN : Ja.

Die IGrouping<TKey, TElement>Objekte werden in einer Reihenfolge ausgegeben, die auf der Reihenfolge der Elemente in der Quelle basiert, die jeweils den ersten Schlüssel erzeugt haben IGrouping<TKey, TElement>. Elemente in einer Gruppierung werden in der Reihenfolge ausgegeben, in der sie in der Quelle erscheinen .


2
Nicht, dass es direkt für die Frage relevant ist, aber da es sich möglicherweise um eine Frage handelt, auf die Menschen fallen, während sie Dinge finden, die nicht gut geordnet sind, kann es interessant sein, festzustellen, dass dies bei PLINQ nicht der Fall ist, es sei denn, dies wird ausdrücklich angefordert.
Ronan Thibaudau

8
Diese Dokumentation gilt nur für LINQ-to-Objects. Dies gilt möglicherweise nicht für bestimmte Implementierungen von LINQ-zu-SQL, LINQ-zu-XML oder LINQ-zu-irgendetwas-anderem.
Leviathanbadger

1
@ Aboveyou00 Nachdem Sie stundenlang versucht haben, die Gruppen nach anderen Feldern als dem Gruppenschlüssel zu sortieren, haben Sie meinen Tag mit Ihrem Kommentar gespeichert. LINQ to MySql sortiert die Gruppen automatisch nach dem Gruppenschlüssel! Ich musste ToList verwenden, um die geordnete Abfrage zu lokalen Objekten zu bringen, und dann darüber gruppieren. Danke dir.
Ivan Ferrer Villa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.