Vb,排序列表

时间:2014-06-23 13:14:23

标签: vb.net list class sorting

我有一个关于在VB.Net中排序类列表的问题。 似乎每个讨论这种排序的主题对我来说都不是很清楚。

我有一个包含以下变量的类语言: - 郎如弦 - 知识为整数

我有一个包含几个语言类的列表。如何对Lang变量进行排序(按字母顺序对列表中的语言类进行排序)?

问候,

2 个答案:

答案 0 :(得分:2)

在之前的StackOverflow问题中回答了这个问题:Sort a List of Object in VB.NET

使用Sort和自定义函数来比较Lang变量。

theList.Sort(Function(x, y) x.Lang.CompareTo(y.Lang))

答案 1 :(得分:2)

在您的课程上实施IComparable,然后使用Sort

Private Class Language : Implements IComparable(Of Language)
  Public Property Lang As String
  Public Property Knowledge As Integer

  Sub New(lang As String)
    Me.Lang = lang
  End Sub

  Public Function CompareTo(other As Language) As Integer _
                                    Implements IComparable(Of Language).CompareTo
    Dim comp As Integer = Me.Lang.CompareTo(other.Lang)
    'If comp = 0 Then Return Me.Knowledge.CompareTo(other.Knowledge)
    Return comp
  End Function
End Class

Sub Main()
  Dim lst As New List(Of Language)
  lst.Add(New Language("fr"))
  lst.Add(New Language("en"))
  lst.Add(New Language("de"))
  lst.Sort()
End Sub

编辑:添加了有关如何按多个属性排序的提示。