残念ながら、適切なタイプの比較子が必要です。
IComparer<object>
DateTime 比較子をラップしただけのカスタム クラスを作成できますが、キャストを介して直接これを行う方法はありません。
コレクションに常に DateTime オブジェクトが含まれている場合は、次のようにするだけです。
ICollection<DateTime> collection = ...;
collection.Sort(Comparer<DateTime>.Default); // or just collection.Sort()
コメントを読んだ後に編集します。
ICollection を直接操作している場合は、LINQ オプションを使用して次のことを行うことができます。
collection.Cast<DateTime>().OrderBy( date => date );
を実装するものIList<T>
( などList<DateTime>
) を使用している場合は、リスト自体で Sort() を呼び出すだけです。
非標準クラスを使用しているため、独自の比較子を作成する必要があります。
class Comparer : IComparer<object> {
int Compare(object a, object b) {
return DateTime.Compare((DateTime)a, (DateTime)b);
}
}
その後、次のように呼び出すことができます。
collection.Sort(new Comparer() );