Сортировать список <DateTime>по убыванию - PullRequest
44 голосов
/ 28 октября 2008

В c # (3.0 или 3.5, поэтому мы можем использовать лямбды), есть ли элегантный способ сортировки списка дат в порядке убывания? Я знаю, что могу сделать прямую сортировку и затем полностью изменить все,

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

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

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

Ответы [ 4 ]

75 голосов
/ 28 октября 2008

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

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

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

61 голосов
/ 04 ноября 2011

Что не так с:

docs.OrderByDescending(d => d.StoredDate);
20 голосов
/ 28 октября 2008
docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

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

6 голосов
/ 28 октября 2008
docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...