2013-05-16 2 views
6

Я был в этой статье C# Sort and OrderBy comparisonЗаказывайте против сортировки для создания упорядоченной коллекции

Но ответ принял в этом вопросе является неясным для меня.

Я не могу решить, когда я должен использовать сортировку или когда я должен использовать OrderBy.

Есть ли способ порекомендовать сортировку или заказ друг другу.

Итак, пожалуйста, дайте мне краткий ответ без каких-либо осложнений.

+1

Ответ на связанный вопрос достаточно ясен: для скорости это не имеет значения. Используйте то, что наиболее удобно. –

ответ

22
  • Вы используете Sort, если вы хотите отсортировать исходный список. Он выполняет сортировку на месте.
  • Вы используете OrderBy, когда вы не хотите менять исходный список, поскольку он возвращает IOrderedEnumerable<T>, который оставляет исходный список нетронутым. Или, когда у вас нет списка, но некоторые другие перечислены.
+5

Я бы добавил «Использовать' OrderBy', когда вам нужна [Стабильная сортировка] (http://en.wikipedia.org/wiki/Stable_sort#Stability) –

+2

Кроме того, OrderBy возвращает IOrderedEnumerable , и вы можете связать другие LINQ функции после него (например, .Select (p => ....)) – icesar

+2

@MatthewWatson: Хорошо. Я не знал об этой разнице, но MSDN подтверждает это. 'Sort' выполняет неустойчивый сортировку' OrderBy –

Смежные вопросы