Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vb.net中,按不同的对象属性对自定义对象列表进行多次排序_Vb.net_List_Sorting - Fatal编程技术网

在vb.net中,按不同的对象属性对自定义对象列表进行多次排序

在vb.net中,按不同的对象属性对自定义对象列表进行多次排序,vb.net,list,sorting,Vb.net,List,Sorting,我想按多个对象属性对自定义对象列表进行排序 例如,我有: MyObject.A MyObject.B MyObject.C 我想先按属性“A”的值,然后按B,然后按C对列表进行排序。所有这些属性都是字符串(它们可能相等,也可能不相等,也可能不包含数字字符) 在浏览web之后,我发现这适用于我只需要按一个属性(在本例中按“A”)对列表进行排序的情况: 效果很好 所以在那之后,我想我只需要按照正确的顺序进行更多的排序,我试着做如下的事情: MyList.Sort(Function(x, y) x.

我想按多个对象属性对自定义对象列表进行排序

例如,我有:

MyObject.A
MyObject.B
MyObject.C
我想先按属性“A”的值,然后按B,然后按C对列表进行排序。所有这些属性都是字符串(它们可能相等,也可能不相等,也可能不包含数字字符)

在浏览web之后,我发现这适用于我只需要按一个属性(在本例中按“A”)对列表进行排序的情况:

效果很好

所以在那之后,我想我只需要按照正确的顺序进行更多的排序,我试着做如下的事情:

MyList.Sort(Function(x, y) x.C.CompareTo(y.C))
MyList.Sort(Function(x, y) x.B.CompareTo(y.B))
MyList.Sort(Function(x, y) x.A.CompareTo(y.A))
有时有效,有时无效。如果列表条目很少(
至于您现有的方法不起作用的原因:就是这样,。Sort()方法不稳定。

您似乎希望数字能像数字一样排序。“9”在文本sortSweet中总是比“10”或“800”多!非常感谢。非常有效!我不能使用LINQ,还有其他解决方案吗?
MyList.Sort(Function(x, y) x.C.CompareTo(y.C))
MyList.Sort(Function(x, y) x.B.CompareTo(y.B))
MyList.Sort(Function(x, y) x.A.CompareTo(y.A))
MyList = (MyList.OrderBy(Function(i) i.A).
                 ThenBy(Function(i) i.B).
                 ThenBy(Function(i) i.C)).ToList()