Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

vb.net - Sorting Listbox Items numerically in VB

I need to sort the items in a visual basic listbox numerically, that is, I have a collection of numbers I would like to be sorted increasingly.

I tried to simply use the listbox's Sorted property, but found that it treated the numbers as if they were strings, that is, it would look at the first digit, then the second, etc. to determine the order. That meant that 13 would show before 5, for example.

I thought of dumping all the numbers into an array, soring the array, and then pushing them back to the listbox, but, honestly, I don't know how to go about the sorting. I figured the array would be useless, since the listbox already acts as a pseudo array.

Any ideas?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use something like this:

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

And call it after binding:

    Dim Items As New List(Of Integer)
    Items.Add(1)
    Items.Add(13)
    Items.Add(2)

    Me.ListBox1.DataSource = Items
    SortIntegerListBox(Me.ListBox1)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...