2012-03-23 4 views
0

Хорошо, я воевал через хорошее количество этого и добрался до такой степени, что могу сортировать свои массивы. Теперь мне нужно сделать следующий код и отсортировать элементы в порядке убывания, а не в порядке возрастания. Я не знаю, как сделать это с двумя аргументами в коде:VB.NET ранжирование столбцов Excel на основе сортировки

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

Если я правильно понимаю ваш вопрос, вы можете осуществить заказ по убыванию сортировать по реверсирования результатов сортировки.

Вы должны иметь возможность предоставить экземпляр 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

Смежные вопросы