我有一个具有3个属性(宽度,高度和数量)的对象,我按高度排序:
pA.Sort(Function(x, y) y.height.CompareTo(x.height))
如果有匹配的高度,我如何按宽度排序?
由于
答案 0 :(得分:0)
pA.Sort(Function(x, y) Iif(y.height.CompareTo(x.height) = 0, y.width.CompareTo(x.width), y.height.CompareTo(x.height)))
您可以尝试使用多行lambda来阻止t.height.CompareTo(x.height)
执行两次:
pA.Sort(Function(x, y)
Dim heightDifference = y.height.CompareTo(x.height)
If Not heightDifference = 0 Then
Return heightDifference
Else
Return y.width.CompareTo(x.width)
End If
End Function)
或者您可以使用LINQ,但它会重新创建已排序的列表,而不是将其排序
pA = pA.OrderBy(Function(x) x.height).ThenBy(Function(x) x.width).ToList()