51

在 c#(3.0 或 3.5,所以我们可以使用 lambdas)中,是否有一种优雅的方式可以按降序对日期列表进行排序?我知道我可以做一个直接的排序,然后把整个事情颠倒过来,

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

但是是否有一个 lambda 表达式可以一步完成?

在上面的示例中,StoredDate 是一个类型为 DateTime 的属性。

4

4 回答 4

86

虽然未经测试...

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

应该与您最初拥有的相反。

于 2008-10-28T18:04:16.220 回答
64

有什么问题:

docs.OrderByDescending(d => d.StoredDate);
于 2011-11-03T22:13:39.433 回答
21
docs.Sort((x, y) => y.StoredDate.CompareTo(x.StoredDate));

应该做你正在寻找的东西。

于 2008-10-28T18:03:08.517 回答
7
docs.Sort((x, y) => -x.StoredDate.CompareTo(y.StoredDate));

注意减号。

于 2008-10-28T18:04:15.660 回答