我有一个乘客(对象)列表,其中它具有不同的属性。
passenger.name
passenger.age
passenger.surname我想按年龄标准对这个列表进行排序,我该怎么做呢?
我知道在整数/字符串列表中List.Sort()是有效的,但如果是一个对象列表,我不知道是否可以按对象属性的值进行排序!
谢谢。
发布于 2012-07-31 16:26:12
要按对象中的属性排序,必须指定比较器或方法来获取该属性。
使用List.Sort方法:
theList.Sort(Function(x, y) x.age.CompareTo(y.age))使用OrderBy扩展方法:
theList = theList.OrderBy(Function(x) x.age).ToList()发布于 2016-12-16 01:39:59
如果需要自定义字符串排序,可以创建一个函数,根据指定的顺序返回一个数字。
例如,我想根据图片的正面或扣子对图片进行排序。因此,我做了以下工作:
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然后,我像这样调用排序函数:
list.Sort(Function(elA As String, elB As String)
Return sortpictures(elA).CompareTo(sortpictures(elB))
End Function)发布于 2014-01-22 18:40:22
您必须实现IComparer接口。
在这个示例中,我有我的自定义对象JSONReturn,我像这样实现我的类:
Friend Class JSONReturnComparer
Implements IComparer(of JSONReturn)
Public Function Compare(x As JSONReturn, y As JSONReturn) As Integer Implements IComparer(Of JSONReturn).Compare
Return String.Compare(x.Name, y.Name)
End Function
End Class我这样调用我的排序列表方法: alResult.Sort(new JSONReturnComparer())
也许它能帮到你
https://stackoverflow.com/questions/11735902
复制相似问题