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

В 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