Linq to Objects: czy GroupBy zachowuje kolejność elementów?


Odpowiedzi:


146

Znaleziono odpowiedź na MSDN : Tak.

Te IGrouping<TKey, TElement>obiekty są uzyskane w kolejności na podstawie kolejności elementów w źródle, które produkowały pierwszy klucz każdego IGrouping<TKey, TElement>. Elementy w grupie są generowane w kolejności, w jakiej występują w źródle .


2
Nie chodzi o to, że jest to bezpośrednio związane z pytaniem, ale ponieważ może to być pytanie, na które ludzie wpadają, znajdując rzeczy nieuporządkowane, może być zainteresowany zauważeniem, że nie dotyczy to PLINQ, chyba że zostanie wyraźnie o to poproszony.
Ronan Thibaudau

8
Ta dokumentacja ma zastosowanie tylko do LINQ-to-objects. To samo może nie być prawdą w przypadku określonych implementacji LINQ-to-SQL, LINQ-to-XML lub LINQ-to-cokolwiek-else.
leviathanbadger

1
@ aboveyou00 po godzinach próby uporządkowania grup według innych pól niż klucz grupy, uratowałeś mój dzień swoim komentarzem. LINQ to MySql automagicznie sortuje grupy według klucza grupy! Musiałem użyć ToList, aby przenieść uporządkowane zapytanie do lokalnych obiektów, a następnie pogrupować je. Dziękuję Ci.
Ivan Ferrer Villa
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.