Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Операция сортировки упорядочивает элементы последовательности на основе одного или нескольких атрибутов. Первый критерий сортировки выполняет первичную сортировку элементов. Указав второй критерий поиска, можно сортировать элементы внутри каждой группы первичной сортировки.
На следующем рисунке показаны результаты операции алфавитной сортировки по последовательности символов.
Далее перечислены методы стандартных операторов запроса, которые выполняют сортировку данных.
Методы
Имя метода | Описание | Синтаксис выражения запроса Visual Basic | Дополнительная информация |
---|---|---|---|
Упорядочить по | Сортировка значений в возрастающем порядке. | Order By |
Enumerable.OrderBy Queryable.OrderBy |
УпорядочитьПоУбыванию | Сортировка значений в убывающем порядке. | Order By … Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
ThenBy | Дополнительная сортировка по возрастанию. | Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
ThenByDescending (сортировка по убыванию) | Дополнительная сортировка по убыванию. | Order By …, … Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
Реверс | Изменение порядка элементов в коллекции на обратный. | Неприменимо. | Enumerable.Reverse Queryable.Reverse |
Примеры синтаксиса выражения запроса
Основные примеры сортировки
Основная сортировка по возрастанию
В следующем примере показано, как использовать Order By
предложение в запросе LINQ для сортировки строк в массиве по длине строки в порядке возрастания.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' fox
' quick
' brown
' jumps
Основная сортировка по убыванию
В следующем примере показано, как использовать Order By Descending
предложение в запросе LINQ для сортировки строк по их первой букве в порядке убывания.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' quick
' jumps
' fox
' brown
Примеры вторичной сортировки
Дополнительная сортировка по возрастанию
В следующем примере показано, как использовать Order By
предложение в запросе LINQ для выполнения первичной и вторичной сортировки строк в массиве. Строки сортируются главным образом по длине и во второй раз по первой букве строки в порядке возрастания.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1)
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' brown
' jumps
' quick
Дополнительная сортировка по убыванию
В следующем примере показано использование предложения Order By Descending
в запросе LINQ для выполнения основной сортировки по возрастанию и дополнительной сортировки по убыванию. Строки сортируются в первую очередь по длине и во второй раз по первой букве строки.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' quick
' jumps
' brown