TimeSpanはIComparableインターフェイスによって大小関係が定義されているため、ソートすることができます。 TimeSpanでは、負から正の方向にTimeSpanの表す時間間隔の短い順(Ticksプロパティの値の小さい順)でソートされます。
Array.Sortを使って複数のTimeSpanをソートする
using System;
class Sample {
static void Main()
{
var arr = new TimeSpan[] {
new TimeSpan(3, 1, 30, 00),
new TimeSpan(-3, 90, 0),
new TimeSpan(0, 0, 0, 0, 1500),
new TimeSpan(30000000),
};
foreach (var ts in arr) {
Console.WriteLine(ts);
}
Console.WriteLine();
// Array.Sortを使ってTimeSpanをソート
Console.WriteLine("[Sort]");
Array.Sort(arr);
foreach (var ts in arr) {
Console.WriteLine(ts);
}
Console.WriteLine();
}
}
実行結果
3.01:30:00 -01:30:00 00:00:01.5000000 00:00:03 [Sort] -01:30:00 00:00:01.5000000 00:00:03 3.01:30:00
ソートについて詳しくは基本型のソートと昇順・降順でのソートをご覧ください。