日付型を日付・時間の新しい順でソートする 言語: C# VB 日付・時間の新しい順に並べ替えるには、次の例のように並べ替え順序を通常と逆の順序に定義したメソッドを用意してからソートします。 逆順(降順)でのソート方法については基本型のソートと昇順・降順でのソート §.降順でのソートを参照してください。 日付型を日付・時間の新しい順でソートする すべて選択してコピー ダウンロード 行番号を表示する using System; class Sample { // DateTimeを通常と逆の順に並べ替えるためのメソッド static int CompareDateTimeReverseOrder(DateTime x, DateTime y) { // 逆順で比較 return DateTime.Compare(y, x); // 次のようにしても同じ //return -DateTime.Compare(x, y); //return y.CompareTo(x); } static void Main() { var dateTimeArray = 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"); foreach (var val in dateTimeArray) { Console.WriteLine("{0:f}", val); } // 逆順にソート Array.Sort(dateTimeArray, CompareDateTimeReverseOrder); Console.WriteLine("reverse order"); foreach (var val in dateTimeArray) { Console.WriteLine("{0:f}", val); } } } 実行結果 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によって大文字・小文字の違いを考慮したソートを行う 日付型の値のソート順序 列挙体の値のソート順序 列挙体の値をメンバ名の順にソートする