【问题标题】:Sort a list of class by multiple parameters按多个参数对类列表进行排序
【发布时间】:2015-05-31 12:10:48
【问题描述】:

我有一个清单:

Dim mylist as List(Of myclass)

例如,我在 mylist 中有 1000 个已实现的对象。

这是 myclass 的结构:

myclass.id  
myclass.value  
myclass.name 
myclass.comments

例如,我有以下内容:

myclass(0) = 1,10,'test00','abcde'
myclass(1) = 1,10,'test01','efgh'
myclass(2) = 1,22,'test00','www'

我想在 VB.NET 中使用 3 个参数对列表 mylist 进行排序:id、value 和 name。并且可以在不同的对象上拥有相同的一对 id、value、name。

我不明白如何使用 3 个参数对这个列表进行排序。我试过了,但它只适用于一个参数....

感谢您的帮助

编辑:这是我使用 1 个参数进行排序的代码:

        For index = 1 To mylist.Count - 1

            Dim x As myclass= mylist(index)
            Dim j As Integer = index

            While (j > 0 And mylist(j - 1).id> x.id)
                mylist(j) = mylist(j - 1)
                j = j - 1
            End While

            mylist(j) = x

        Next

【问题讨论】:

  • 你能用一个参数展示你的排序方式吗?
  • 是的,看看我刚刚编辑了我的问题
  • 我相信您可以使用 LINQ 按多个参数排序。语法与编写 SQL 查询基本相同(毕竟,这是 LINQ 的全部意义)。首先将您的类放在一个列表中,然后创建第二个排序的 LINQ 列表;
  • 感谢您的回答。我以前从未使用过 LINQ,现在我必须阅读有关它的文档。谢谢!

标签: vb.net list class sorting


【解决方案1】:

您可以使用以下 LINQ 查询:

 Dim SortedList As List(Of myclass) = mylist.OrderBy(Function(m) m.id).ThenBy(Function(m) m.name).ToList()

【讨论】:

  • 这正是我想要的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-04-21
  • 2011-05-13
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多