所以有一个名为 Article 的类有 2 个属性
Public Property Name As String
Public Property Price As Decimal
现在我创建了另一个包含单个属性的类
Public Property Articles As Article()
这应该是某种存储库,它非常适合它应该做的事情,但是现在我必须按其中一个属性对这个集合进行排序,一次按名称,一次按价格,而不会丢失名称和价格(例如,它必须记住啤酒 2 美元和苹果 1 美元)。
您可以使用Array.Sort对数组进行排序。例如,按价格排序:
Array.Sort(Articles, Function(a1, a2) a1.Price.CompareTo(a2.Price))
您可以Array.Sort与Comparison(Of T)代表一起使用;但请注意,您的原始数组将被排序。
Array.Sort(Articles, Function(x, y) x.Name.CompareTo(y.Name))
如果您想根据多个值对数组进行排序(或者您想保留原始数组),则可以使用该IEnumerable(Of T).OrderBy方法(与 链接IEnumerable(Of T).ThenBy)。
' 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()