1つ目は、Sortメソッドで昇順にソートしてから、Reverseメソッドで逆順(つまり降順)にするものです。 配列・ArrayList・List<T>にはそれぞれArray.Reverse, ArrayList.Reverse, List.Reverseの各メソッドが用意されていて、これを使うことで要素を逆順に並び替える事が出来ます。

SortメソッドとReverseメソッドを使ってListを降順にソートする
using System;
using System.Collections.Generic;

class Sample {
  static void Main()
  {
    // ソート対象のList<int>
    List<int> list = new List<int>(new int[] {5, 2, 3, 1, 4});

    // ソート
    list.Sort();

    // リバース
    list.Reverse();

    foreach (int val in list) {
      Console.Write("{0}, ", val);
    }
    Console.WriteLine();
  }
}
実行結果
5, 4, 3, 2, 1, 

Reverseメソッドそのものは単に要素を逆順に並び替えるだけなので、Reverseメソッドだけを呼び出しても降順には並び替えられません。 必ずSortメソッドで昇順にソートしてから呼び出す必要があります。

Reverseメソッドは、Array.SortList.Sortメソッドと同様、元になった配列・コレクション自体の内容を逆順にします(破壊的変更)。 非破壊的な方法で降順にソートしたい(元の配列・コレクションは維持したままにしたい)場合は、OrderByDescendingメソッドを使用することができます。