2013-05-16 12 views
6

byłem przez ten artykuł C# Sort and OrderBy comparisonZamówienie VS Sortuj do tworzenia nakazał zbieranie

Ale odpowiedź przyjęte w tej kwestii jest niejasne dla mnie.

Nie mogę zdecydować, kiedy powinienem użyć Sortowania lub kiedy powinienem używać OrderBy.

Czy mimo to zaleca się sortowanie lub zamówienie przez siebie nawzajem.

Proszę, proszę, ułóż mi krótką odpowiedź bez żadnych komplikacji.

+1

Odpowiedź na powiązane pytanie jest całkiem jasna: nie ma znaczenia dla prędkości. Użyj wszystkiego, co najwygodniejsze. –

Odpowiedz

22
  • Używasz Sort, kiedy chcesz posortować oryginalną listę. Przeprowadza sortowanie w miejscu.
  • Używasz OrderBy, gdy nie chcesz zmieniać oryginalnej listy, ponieważ zwraca ona IOrderedEnumerable<T>, która pozostawia pierwotną listę nietkniętą. Lub gdy nie masz listy, ale niektóre inne przeliczalne.
+5

Dodałbym "Użyj' OrderBy' gdy potrzebujesz [Stabilny sort] (http://en.wikipedia.org/wiki/Stable_sort#Stability) –

+2

Ponadto, OrderBy zwraca IOrderedEnumerable i możesz połączyć inne LINQ funkcje po nim (na przykład. Wybierz (p => ....)) – icesar

+2

@MatthewWatson: Dobrze, nie wiedziałem o tej różnicy, ale MSDN ją potwierdza. 'Sortuj' wykonuje sortowanie niestabilne,' OrderBy 'wykonuje stabilny sort. –