【问题标题】:VB.net Sort Arraylist By Objects NameVB.net 按对象名称排序 Arraylist
【发布时间】:2012-11-28 14:52:30
【问题描述】:

尝试按对象名称对数组列表进行排序

Dim ObjList as new arraylist
Dim TextBox1 as new textbox
Textbox1.name = "CCC"
Dim TextBox2 as new textbox
Textbox1.name = "AAA"
Dim TextBox3 as new textbox
Textbox1.name = "BBB"
ObjList.add(TextBox1)
ObjList.add(TextBox2)
ObjList.add(TextBox3)
ObjList.sort()

排序会产生错误。我将如何按名称对文本框进行排序,使其看起来像 AAA BBB CCC

谢谢

【问题讨论】:

  • 您已经设置了 Textbox1.Name 三次 - 如果这实际上是您的意思,我已将其留给您来编辑您的帖子。另外,您使用的是什么版本的 Visual Studio。

标签: vb.net sorting arraylist


【解决方案1】:

您必须创建一个IComparer 并将其传递给Sort 方法:

Class TextBoxComparer 
    Implements IComparer

    Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare
        Return String.Compare(x.Name, y.Name)
    End Function

End Class

...

ObjList.Sort(New TextBoxComparer())

或者,如果您可以切换到 List(Of TextBox),匿名函数(匹配 Comparison(Of T) 委托)也可以:

Dim ObjList As New List(Of TextBox)

...

ObjList.Sort(Function(x, y) String.Compare(x.Name, y.Name))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2011-09-03
    • 1970-01-01
    • 2010-11-24
    • 2010-11-22
    相关资源
    最近更新 更多