VB.NET List sort 整列 昇順 降順 ソート

List内の項目を並び替える事をソート(並び替え・整列)と言います。
小さい順(昇順)か大きい順(降順)を指定する事ができます。

昇順でソートする方法

Dim list As New List(Of Integer)()
list.Add(50)
list.Add(10)
list.Add(100)

list.Sort()

For Each e As Integer In list
    Console.WriteLine(e)
Next
10
50
100

listに50,10,100の順番でデータが入っていますが、
並び替え(ソート)した事によって、順番が入れ替わりました。

list.Sort() と書くと、昇順で並べ替えを行います。

降順でソートする方法

Dim list As New List(Of Integer)()
list.Add(50)
list.Add(10)
list.Add(100)

list.Sort()
list.Reverse()

For Each e As Integer In list
    Console.WriteLine(e)
Next

Listを降順で並び替えするには、
まず、Sortメソッドを呼び出して昇順に並び替えてから、
Reverseメソッドを呼び出します。

Reverseメソッドは、List内容を逆順に並び替えるメソッドです。

降順と逆順で何が違うかと言うと、
降順は数値の大きい順に並べ替えるのに対して、
逆順は、単にListの末端の項目から並び替えると言う意味になります。

ですから、Sortメソッドを呼ばずにいきなりReverseメソッドを使うと、
100,10,50の順で並び替えられてしまうのです。

まとめとして、降順で並び替えたい場合は、
まずSortメソッドで昇順に並び替えてから、
Reverseメソッドを使います。

スポンサーリンク

文字列型のソート

Dim list As New List(Of String)()
list.Add("aaa")
list.Add("BBB")
list.Add("zzz")
list.Add("666")
list.Add("検索")

list.Sort()

For Each e As String In list
    Console.WriteLine(e)
Next
666
aaa
BBB
zzz
検索

String型データの場合もSortメソッドで並び替えできます。

この場合、文字コードの値が基準になります。


これでListの項目を並び替えできるようになりました。