我有一个关于在VB.Net中排序类列表的问题。 似乎每个讨论这种排序的主题对我来说都不是很清楚。
我有一个包含以下变量的类语言: - 郎如弦 - 知识为整数
我有一个包含几个语言类的列表。如何对Lang变量进行排序(按字母顺序对列表中的语言类进行排序)?
问候,
答案 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
编辑:添加了有关如何按多个属性排序的提示。