日付型を日付・時間の新しい順でソートする 言語: VB C# 日付・時間の新しい順に並べ替えるには、次の例のように並べ替え順序を通常と逆の順序に定義したメソッドを用意してからソートします。 逆順(降順)でのソート方法については基本型のソートと昇順・降順でのソート §.降順でのソートを参照してください。 日付型を日付・時間の新しい順でソートする すべて選択してコピー ダウンロード 行番号を表示する 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 関連するページ Sort + IComparerによって大文字・小文字の違いを考慮したソートを行う OrderBy + IComparerによって大文字・小文字の違いを考慮したソートを行う 日付型の値のソート順序 列挙体の値のソート順序 列挙体の値をメンバ名の順にソートする