在VB中以数字方式对列表框项进行排序

时间:2010-01-28 19:34:24

标签: vb.net visual-studio sorting

我需要以数字方式对视觉基本列表框中的项目进行排序,也就是说,我希望逐渐对数字进行排序。

我试图简单地使用列表框的Sorted属性,但发现它将数字视为字符串,即它会查看第一个数字,然后是第二个数字等,以确定顺序。例如,这意味着13将在5之前显示。

我想把所有数字转储到一个数组中,对数组进行测试,然后将它们推回到列表框中,但老实说,我不知道如何进行排序。我认为数组是无用的,因为列表框已经充当伪数组。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

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)

答案 1 :(得分:1)

您可以将项目转储到List(Of Integer)对象中并调用其排序。然后将列表框绑定到排序后的新列表。