如何按降序排序DateTime对象的ArrayList?

Eug*_*ene 12 c#

如何按降序对DateTime对象的ArrayList进行排序?

谢谢.

Guf*_*ffa 33

首先,除非你坚持使用框架1.1,否则你根本就不应该使用它ArrayList.您应该使用强类型通用List<DateTime>.

对于自定义排序,该Sort方法的重载需要比较器.通过反转常规比较,您可以按降序排序:

list.Sort(delegate(DateTime x, DateTime y){ return y.CompareTo(x); });
Run Code Online (Sandbox Code Playgroud)

更新:

使用C#3中的lambda表达式,委托更容易创建:

list.Sort((x, y) => y.CompareTo(x));
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 16

正如"Guffa"已经说过的那样,ArrayList除非你在.NET 1.1中,否则你不应该使用它; 这里有一个更简单的List<DateTime>例子:

List<DateTime> dates = ... // init and fill
dates.Sort();
dates.Reverse();
Run Code Online (Sandbox Code Playgroud)

您的日期现在按降序排列.