Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting - Fatal编程技术网

Vb.net 如何按对象集合的一个属性对其进行排序

Vb.net 如何按对象集合的一个属性对其进行排序,vb.net,sorting,Vb.net,Sorting,因此有一个名为Article的类,它有两个属性 Public Property Name As String Public Property Price As Decimal 现在我创建了另一个包含单个属性的类 Public Property Articles As Article() 这应该是某种类型的存储库,它对它应该做的工作非常好,但是现在我必须按照一个属性对这个集合进行排序,一次按名称,一次按价格,而不丢失名称和价格之间的联系。例如,啤酒价格为2美元,苹果价格为1美元。您可以使用它对

因此有一个名为Article的类,它有两个属性

Public Property Name As String
Public Property Price As Decimal
现在我创建了另一个包含单个属性的类

Public Property Articles As Article()
这应该是某种类型的存储库,它对它应该做的工作非常好,但是现在我必须按照一个属性对这个集合进行排序,一次按名称,一次按价格,而不丢失名称和价格之间的联系。例如,啤酒价格为2美元,苹果价格为1美元。

您可以使用它对数组进行排序。例如,要按价格排序:

Array.Sort(Articles, Function(a1, a2) a1.Price.CompareTo(a2.Price))
您可以与ComparisonOf T委托一起使用;但请注意,原始数组将被排序

Array.Sort(Articles, Function(x, y) x.Name.CompareTo(y.Name))
如果要对数组按多个值排序,或者要保留原始数组,可以使用链接的方法


哇,答案就这么简单。谢谢D
' Either store the result in the current Articles variable or a new one
Dim sortedArray As Article() = Articles.OrderBy(Function(a) a.Name) _
                               .ThenBy(Function(a) a.Price) _
                               .ToArray()