TimeSpanはIComparableインターフェイスによって大小関係が定義されているため、ソートすることができます。 TimeSpanでは、負から正の方向にTimeSpanの表す時間間隔の短い順(Ticksプロパティの値の小さい順)でソートされます。
Array.Sortを使って複数のTimeSpanをソートする
Imports System
Class Sample
Shared Sub Main()
Dim arr() As TimeSpan = New TimeSpan() { _
New TimeSpan(3, 1, 30, 00), _
New TimeSpan(-3, 90, 0), _
New TimeSpan(0, 0, 0, 0, 1500), _
New TimeSpan(30000000) _
}
For Each ts As TimeSpan In arr
Console.WriteLine(ts)
Next
Console.WriteLine()
' Array.Sortを使ってTimeSpanをソート
Console.WriteLine("[Sort]")
Array.Sort(arr)
For Each ts As TimeSpan In arr
Console.WriteLine(ts)
Next
Console.WriteLine()
End Sub
End Class
実行結果
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
ソートについて詳しくは基本型のソートと昇順・降順でのソートをご覧ください。