好吧,我经历了很多这样的事情,并且已经达到了我可以对数组进行排序的程度。我现在需要做的是采用以下代码并按降序排序元素而不是升序。我不知道如何使用代码中的两个参数:
Dim Cols(3) As Int16
Cols(0) = ColumnNumber + 1
Cols(1) = ColumnNumber + 2
Cols(2) = ColumnNumber + 3
Cols(3) = ColumnNumber + 4
Dim Vals(3) As Double
Vals(0) = xlsWorkSheet.Cells(r, ColumnNumber + 1).value
Vals(1) = xlsWorkSheet.Cells(r, ColumnNumber + 2).value
Vals(2) = xlsWorkSheet.Cells(r, ColumnNumber + 3).value
Vals(3) = xlsWorkSheet.Cells(r, ColumnNumber + 4).value
Array.Sort(Vals, Cols)
答案 0 :(得分:0)
如果我正确理解您的问题,您可以通过反转排序结果来实现降序排序。
您应该能够提供一个反转排序顺序的IComparer实例。
Public Class myReverserClass
Implements IComparer
' Calls CaseInsensitiveComparer.Compare with the parameters reversed.
Function Compare(x As [Object], y As [Object]) As Integer _
Implements IComparer.Compare
Return New CaseInsensitiveComparer().Compare(y, x)
End Function 'IComparer.Compare
End Class 'myReverserClass
执行反向排序:
Dim myComparer = New myReverserClass()
Array.Sort(Vals, Cols, myComparer)
MSDN上有一个例子:http://msdn.microsoft.com/en-us/library/system.array.sort(v=vs.71).aspx