SortedList Desc Order
我使用SortedList
按datecolumn
顺序动态排列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); }