Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 > Windows.Forms.ListBox >
項目を並び替える
1.昇順に並び替える例
以下の例では項目が辞書順に並び変わる。
Dim Items() As String = {"カイロ", "モスクワ", "パリ", "ニューヨーク"} ListBox1.Items.AddRange(Items)
ListBox1.Sorted = True
メモ:この方法で数字を並び替えると、100は9より小さいとみなされます。辞書は先頭の文字で順番を比較するからです。数値順に並び替えるには3.数値順に並び替える例をご覧下さい。
2.逆順に並び替える例
以下の例では項目を逆に並び替える。
Dim Items() As String = {"カイロ", "モスクワ", "パリ", "ニューヨーク"} ListBox1.Items.AddRange(Items)
ArrayList.Adapter(ListBox1.Items).Reverse()
3.数値順に並び替える例
以下の例では項目が数値順に並び変わる。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Items() As String = {"100", "9", "25", "12"}
ListBox1.Items.AddRange(Items)
ArrayList.Adapter(ListBox1.Items).Sort(New IntegerSorter)
End Sub
Public Class IntegerSorter
Implements IComparerPublic Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Return CInt(x).CompareTo(CInt(y))
End Function
End Classメモ:この例ではIntegerに変換可能な数値のみを扱っています。
4.項目を任意の順番に並び替える例
以下の例では惑星の名前を太陽に近い順に並び替える。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Items() As String = {"地球", "火星", "水星", "木星", "金星"}
ListBox1.Items.AddRange(Items)
ArrayList.Adapter(ListBox1.Items).Sort(New PlanetSorter)
End Sub
Public Class PlanetSorter
Implements IComparerPrivate ArCustom() As String = {"水星", "金星", "地球", "火星", "木星"}
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim XIndex As Integer = Array.IndexOf(ArCustom, CStr(x))
Dim YIndex As Integer = Array.IndexOf(ArCustom, CStr(y))Return Comparer.Default.Compare(XIndex, YIndex)
End Function
End Class