bom*_*bai 43 vb.net sorting list object
我有一个乘客(对象)列表,它有不同的属性..
passenger.name
passenger.age
passenger.surname
Run Code Online (Sandbox Code Playgroud)
我想按年龄标准对此列表进行排序,我该怎么做?
我知道在整数/字符串列表List.Sort()工作,但如果是一个对象列表,我不知道是否可以按对象属性的值排序!
谢谢.
Guf*_*ffa 101
要按对象中的属性进行排序,必须指定比较器或获取该属性的方法.
使用List.Sort方法:
theList.Sort(Function(x, y) x.age.CompareTo(y.age))
Run Code Online (Sandbox Code Playgroud)
使用OrderBy扩展方法:
theList = theList.OrderBy(Function(x) x.age).ToList()
Run Code Online (Sandbox Code Playgroud)
如果您需要自定义字符串排序,您可以创建一个根据您指定的顺序返回数字的函数。
例如,我想根据正面或扣环对图片进行排序。所以我做了以下事情:
Private Function sortpictures(s As String) As Integer
If Regex.IsMatch(s, "FRONT") Then
Return 0
ElseIf Regex.IsMatch(s, "SIDE") Then
Return 1
ElseIf Regex.IsMatch(s, "CLASP") Then
Return 2
Else
Return 3
End If
End Function
Run Code Online (Sandbox Code Playgroud)
然后我像这样调用排序函数:
list.Sort(Function(elA As String, elB As String)
Return sortpictures(elA).CompareTo(sortpictures(elB))
End Function)
Run Code Online (Sandbox Code Playgroud)