按多个参数对类列表进行排序

时间:2015-03-27 08:16:42

标签: vb.net list class sorting

我有一个清单:

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个参数对此List进行排序。我试过但它只适用于一个参数....

感谢您的帮助

编辑:这是我用于使用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

1 个答案:

答案 0 :(得分:2)

您可以使用以下LINQ查询:

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