首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对VB.NET中的对象列表排序

对VB.NET中的对象列表排序
EN

Stack Overflow用户
提问于 2012-07-31 16:19:11
回答 4查看 133.9K关注 0票数 58

我有一个乘客(对象)列表,其中它具有不同的属性。

代码语言:javascript
运行
复制
passenger.name
passenger.age
passenger.surname

我想按年龄标准对这个列表进行排序,我该怎么做呢?

我知道在整数/字符串列表中List.Sort()是有效的,但如果是一个对象列表,我不知道是否可以按对象属性的值进行排序!

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-31 16:26:12

要按对象中的属性排序,必须指定比较器或方法来获取该属性。

使用List.Sort方法:

代码语言:javascript
运行
复制
theList.Sort(Function(x, y) x.age.CompareTo(y.age))

使用OrderBy扩展方法:

代码语言:javascript
运行
复制
theList = theList.OrderBy(Function(x) x.age).ToList()
票数 136
EN

Stack Overflow用户

发布于 2016-12-16 01:39:59

如果需要自定义字符串排序,可以创建一个函数,根据指定的顺序返回一个数字。

例如,我想根据图片的正面或扣子对图片进行排序。因此,我做了以下工作:

代码语言:javascript
运行
复制
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

然后,我像这样调用排序函数:

代码语言:javascript
运行
复制
list.Sort(Function(elA As String, elB As String)
                  Return sortpictures(elA).CompareTo(sortpictures(elB))
              End Function)
票数 4
EN

Stack Overflow用户

发布于 2014-01-22 18:40:22

您必须实现IComparer接口。

在这个示例中,我有我的自定义对象JSONReturn,我像这样实现我的类:

代码语言:javascript
运行
复制
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())

也许它能帮到你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11735902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档