【问题标题】:Sorting Listbox Items numerically in VB在VB中对列表框项目进行数字排序
【发布时间】:2010-01-28 19:34:23
【问题描述】:
我需要对 Visual Basic 列表框中的项目进行数字排序,也就是说,我有一个我希望越来越多地排序的数字集合。
我尝试简单地使用列表框的 Sorted 属性,但发现它将数字视为字符串,也就是说,它会查看第一个数字,然后查看第二个数字,依此类推来确定顺序。例如,这意味着 13 将在 5 之前显示。
我想过将所有数字转储到一个数组中,对数组进行排序,然后将它们推回列表框,但是,老实说,我不知道如何进行排序。我认为该数组将毫无用处,因为列表框已经充当伪数组。
有什么想法吗?
【问题讨论】:
标签:
vb.net
visual-studio
sorting
【解决方案1】:
你可以这样使用:
Private Shared Sub SortIntegerListBox(ByVal listBox As ListBox)
Dim TempList As New List(Of Integer)
For Each LI In listBox.Items
TempList.Add(Integer.Parse(LI.ToString()))
Next
TempList.Sort()
listBox.DataSource = TempList
End Sub
并在绑定后调用:
Dim Items As New List(Of Integer)
Items.Add(1)
Items.Add(13)
Items.Add(2)
Me.ListBox1.DataSource = Items
SortIntegerListBox(Me.ListBox1)
【解决方案2】:
您可以将项目转储到 List(Of Integer) 对象中并调用它的排序。然后将您的列表框绑定到该新列表后排序。