日付・時間の新しい順に並べ替えるには、次の例のように並べ替え順序を通常と逆の順序に定義したメソッドを用意してからソートします。 逆順(降順)でのソート方法については基本型のソートと昇順・降順でのソート §.降順でのソートを参照してください。

日付型を日付・時間の新しい順でソートする
Imports System

Class Sample
  ' DateTimeを通常と逆の順に並べ替えるためのメソッド
  Shared Function CompareDateTimeReverseOrder(ByVal x As DateTime, ByVal y As DateTime) As Integer
    ' 逆順で比較
    Return DateTime.Compare(y, x)
    ' 次のようにしても同じ
    'Return -DateTime.Compare(x, y)
    'Return y.CompareTo(x)
  End Function

  Shared Sub Main()
    Dim dateTimeArray As DateTime() = New DateTime() { _
      New DateTime(2000, 1, 1,  0, 0, 0), _
      New DateTime(2000, 1, 1, 12, 0, 0), _
      New DateTime(2000, 1, 2,  0, 0, 0), _
      New DateTime(2000, 2, 1,  0, 0, 0), _
      New DateTime(2001, 1, 1,  0, 0, 0) _
    }

    ' デフォルトの順にソート
    Array.Sort(dateTimeArray)

    Console.WriteLine("default order")
    For Each val As DateTime In dateTimeArray
      Console.WriteLine("{0:f}", val)
    Next

    ' 逆順にソート
    Array.Sort(dateTimeArray, AddressOf CompareDateTimeReverseOrder)

    Console.WriteLine("reverse order")
    For Each val As DateTime In dateTimeArray
      Console.WriteLine("{0:f}", val)
    Next
  End Sub
End Class
実行結果
default order
2000年1月1日 0:00
2000年1月1日 12:00
2000年1月2日 0:00
2000年2月1日 0:00
2001年1月1日 0:00
reverse order
2001年1月1日 0:00
2000年2月1日 0:00
2000年1月2日 0:00
2000年1月1日 12:00
2000年1月1日 0:00

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。