Сортировать список <Дата и время> по убыванию

В C# (3.0 или 3.5, поэтому мы можем использовать 9X_c# лямбды), есть ли элегантный способ сортировки 9X_lambda-functions списка дат в порядке убывания? Я знаю, что 9X_sort могу выполнить прямую сортировку, а затем 9X_sorted все наоборот,

docs.Sort((x, y) => x.StoredDate.CompareTo(y.StoredDate));
docs.Reverse();

но есть ли лямбда-выражение, которое 9X_generic-lambda сделает это за один шаг?

В приведенном выше 9X_sort примере StoredDate - это свойство, типизированное 9X_array-sorting как DateTime.

51
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Сортировать список <Дата и время> по убыванию

Хотя это не проверено ...

docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

должно быть противоположным 9X_lambda тому, что было у вас изначально.

90
0

Ответ #2

Ответ на вопрос: Сортировать список <Дата и время> по убыванию

Что не так:

docs.OrderByDescending(d => d.StoredDate);

9X_csharp

65
2

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

Ответ #3

Ответ на вопрос: Сортировать список <Дата и время> по убыванию

docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

Должен делать то, что вы ищете.

9X_lambda-functions

21
0

Ответ #4

Ответ на вопрос: Сортировать список <Дата и время> по убыванию

docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate));

Обратите внимание на знак минус.

9X_lambda

7
0