Linq to Objects: GroupBy preserva l'ordine degli elementi?


Risposte:


146

Risposta trovata su MSDN : Sì.

Gli IGrouping<TKey, TElement>oggetti vengono restituiti in un ordine basato sull'ordine degli elementi in source che hanno prodotto la prima chiave di ciascuno IGrouping<TKey, TElement>. Gli elementi in un raggruppamento vengono restituiti nell'ordine in cui appaiono nella sorgente .


2
Non che sia direttamente rilevante per la domanda, ma poiché potrebbe essere una domanda su cui le persone cadono mentre trovano cose non ben ordinate, potrebbe essere interessante notare che non è il caso di PLINQ se non esplicitamente richiesto.
Ronan Thibaudau

8
Tale documentazione è applicabile solo a LINQ-to-objects. Lo stesso potrebbe non essere vero per implementazioni specifiche di LINQ-to-SQL, LINQ-to-XML o LINQ-to-anything-else.
leviathanbadger

1
@ aboveyou00 dopo ore cercando di ordinare i gruppi in base a campi diversi dalla chiave del gruppo, mi hai salvato la giornata con il tuo commento. LINQ to MySql ordina automaticamente i gruppi in base alla chiave del gruppo! Ho dovuto usare ToList per portare la query ordinata agli oggetti locali, quindi raggruppare su quello. Grazie.
Ivan Ferrer Villa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.