VB.NET ранжирование столбцов Excel на основе сортировки - PullRequest
0 голосов
/ 23 марта 2012

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

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)

1 Ответ

0 голосов
/ 31 марта 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...