Linq ke Objek: Apakah GroupBy mempertahankan urutan elemen?

Jawaban:

146

Jawaban yang ditemukan di MSDN : Ya.

The IGrouping<TKey, TElement>objek yang dihasilkan dalam urutan berdasarkan urutan unsur-unsur dalam sumber yang menghasilkan kunci pertama dari setiap IGrouping<TKey, TElement>. Elemen dalam pengelompokan dihasilkan dalam urutan kemunculannya di sumber .

Konstantin Spirin
sumber
2
Bukan karena ini secara langsung relevan dengan pertanyaan tetapi karena ini mungkin merupakan pertanyaan yang membuat orang jatuh ketika menemukan hal-hal yang tidak tertata dengan baik, mungkin menarik untuk dicatat bahwa ini bukan kasus PLINQ kecuali diminta secara eksplisit.
Ronan Thibaudau
8
Dokumentasi itu hanya berlaku untuk LINQ-to-objects. Hal yang sama mungkin tidak berlaku untuk implementasi khusus LINQ-to-SQL, LINQ-to-XML, atau LINQ-to-anything-else.
leviathanbadger
1
@ aboveyou00 setelah berjam-jam mencoba untuk mendapatkan grup diurutkan berdasarkan bidang lain selain kunci grup, Anda menyimpan hari saya dengan komentar Anda. LINQ ke MySql mengurutkan grup secara otomatis dengan kunci grup! Saya harus menggunakan ToList untuk membawa kueri yang diurutkan ke objek lokal, lalu mengelompokkan di atasnya. Terima kasih.
Ivan Ferrer Villa