1

所以有一个名为 Article 的类有 2 个属性

Public Property Name As String
Public Property Price As Decimal

现在我创建了另一个包含单个属性的类

Public Property Articles As Article()

这应该是某种存储库,它非常适合它应该做的事情,但是现在我必须按其中一个属性对这个集合进行排序,一次按名称,一次按价格,而不会丢失名称和价格(例如,它必须记住啤酒 2 美元和苹果 1 美元)。

4

2 回答 2

0

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

Array.Sort(Articles, Function(a1, a2) a1.Price.CompareTo(a2.Price))
于 2013-11-04T20:35:58.193 回答
0

您可以Array.SortComparison(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()
于 2013-11-04T20:43:08.263 回答