逆順ソート

Listをソートしたい場合,Sortメソッドが使えます.ListであればSortメソッドを引数なしでOKなのでかなりお手軽です.ただしその際に得られるのは昇順のソートです.降順にソートしたい場合はどうすればよいのでしょう?

とりあえずこうすれば出来ます.

class Program
{
  static void Main(string[] args)
  {
    List<int> list = new List<int>();
    list.Add(3);
    list.Add(9);
    list.Add(1);
    list.Add(4);

    // 昇順だったらこれでOK
    // list.Sort();

    // 降順用にComparisonデリゲート作成
    list.Sort(delegate(int lhs, int rhs){ return lhs <= rhs ? 1 : -1; });

    foreach (int i in list)
    {
      Console.Write("{0},", i);
    }
    Console.WriteLine();
  }
}

しかし,いちいちこんなデリゲートを作んないといけないのかなー?もちろんlist.Sortしたあとでlist.Reverseしてもいいんだけど,なんかしっくりこないんですよね.まぁいいけど……