Arrays 从列表框中排序的visual basic数组

Arrays 从列表框中排序的visual basic数组,arrays,vb.net,sorting,arraylist,Arrays,Vb.net,Sorting,Arraylist,你好,我的代码有问题! 我们被要求从text.txt文件中组织一个姓名列表,并将其显示在lits框中(将该部分记下:)。然后,从列表框中,我们被要求创建一个数组并对该数组进行排序(使用我们自己的排序方法),并使用一个按认可顺序排列的按钮和另一个按分散顺序排列数组的按钮来组织名称。订单名称的结果应显示在另一个列表框中。 我只得到了列表中的姓氏,并显示在第二个列表框中,但我的代码没有错误,它只是无法正确排列名称!救命啊 这是我的代码:) 公共类文件排序 Dim sr为IO.StreamReader=

你好,我的代码有问题! 我们被要求从text.txt文件中组织一个姓名列表,并将其显示在lits框中(将该部分记下:)。然后,从列表框中,我们被要求创建一个数组并对该数组进行排序(使用我们自己的排序方法),并使用一个按认可顺序排列的按钮和另一个按分散顺序排列数组的按钮来组织名称。订单名称的结果应显示在另一个列表框中。 我只得到了列表中的姓氏,并显示在第二个列表框中,但我的代码没有错误,它只是无法正确排列名称!救命啊

这是我的代码:)

公共类文件排序
Dim sr为IO.StreamReader=IO.File.OpenText(“C:\Users\Inspiron 15\documents\visual studio 2010\Projects\assigment4 EL\assigment4 EL\names.txt”)
结构名称
作为整数的Dim c
将全名设置为字符串
端部结构
将所有名称(99)设置为名称
私有子btnName_Click(ByVal发送者作为System.Object,ByVal e作为System.EventArgs)处理btnName。单击
当老皮克-1
Name=sr.ReadLine
LstNames.Items.Add(名称和“”)
环
高级关闭()
端接头
私有子bubbelsort(ByRef names()作为System.String,ByVal c作为整数)
c=0
姓名(c)=高级阅读线()
c=c*1
对于c=1到99,步骤+1'~~~将(Z到A)添加到列表框中
lstOrderedNames.Items.Add(名称和“”)'
下一个
端接头
私有子BTNASEND_Click(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理BTNASEND。单击
Dim名称(99)作为字符串
作为整数的Dim c
c=0
将A变暗为整数
A=99
名称(c)=sr.ToString
c=c+1
对于c=1到99,步骤+1'~~~将(Z到A)添加到列表框中
lstOrderedNames.Items.Add(名称和“”)
下一个
端接头
私有子按钮1\u单击(ByVal发件人作为System.Object,ByVal e作为System.EventArgs)处理BtnDessend。单击
Dim名称(99)作为字符串
作为整数的Dim c
c=0
将A变暗为整数
A=99
名称(c)=sr.ToString
名称(A)=sr.ToString
A=A-1
对于A=99到0,步骤-1'~~~将(Z到A)添加到列表框中
lstOrderedNames.Items.Add(名称和“”)
下一个
端接头
您可以使用linq

 ListBox1.Items.Add("Battle")
 ListBox1.Items.Add("Cattle")
 ListBox1.Items.Add("apple")

 ListBox2.DataSource = (From l In ListBox1.Items
                        Select l Order By l Ascending).ToList

因为你的问题是排序算法(如果我理解正确的话)

首先我们需要一个数组

Dim arr(ListBox1.Items.Count - 1) As String
For i As Integer = 0 To arr.Length - 1
    arr(i) = CStr(ListBox1.Items(i))
Next
接下来是排序算法。既然你想和BubbleSort一起去:

Private Sub StringBubbleSort(arr As String)
    For i As Integer = 0 To arr.Length - 1
        For j As Integer = 0 To arr.Length - 2 - i
            If String.Compare(arr(j), arr(j + 1)) > 0 Then
                Dim temp As String = arr(j)
                arr(j) = arr(i)
                arr(i) = temp
            End If
        Next
    Next
End Sub
然后使用此函数将数组复制到第二个列表框中

StringBubbleSort(arr)
ListBox2.Items.AddRange(arr)

String.Compare:

您可能还想在“处理”前后添加一些数据示例,除非这不算是使用您自己的排序方法。omg谢谢您的帮助!!!这算是创建自己的排序方法还是属于使用VB排序函数的类别?这绝对是一种内置排序方法。你可以用同样的方式使用你自己的排序方法,我稍后会发布,因为它比我现在能做的稍微多一些。对不起,我忘了再次登录这里。
StringBubbleSort(arr)
ListBox2.Items.AddRange(arr)