SortedList Desc Order

我使用SortedListdatecolumn顺序动态排列arraylist记录,但默认情况下它按升序排序。 我一直试图按降序排序,但无法得到它。

无法指示SortedList按降序排序。 你必须像这样提供自己的Comparer

  class DescendedDateComparer : IComparer { public int Compare(DateTime x, DateTime y) { // use the default comparer to do the original comparison for datetimes int ascendingResult = Comparer.Default.Compare(x, y); // turn the result around return 0 - ascendingResult; } } static void Main(string[] args) { SortedList test = new SortedList(new DescendedDateComparer()); } 

在进行比较时,应该将y换成x

 class DescComparer : IComparer { public int Compare(T x, T y) { return Comparer.Default.Compare(y, x); } } 

然后这个

 var list = new SortedList(new DescComparer()); 

您可以使用Reverse()按降序对SortedList进行排序:

 var list = new SortedList(); list.Add(new DateTime(2000, 1, 2), "Third"); list.Add(new DateTime(2001, 1, 1), "Second"); list.Add(new DateTime(2010, 1, 1), "FIRST!"); list.Add(new DateTime(2000, 1, 1), "Last..."); var desc = list.Reverse(); foreach (var item in desc) { Console.WriteLine(item); }