Поделиться через


Предложение Order By (Visual Basic)

Указывает порядок сортировки для результата запроса.

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]

Части

  • orderExp1
    Обязательный. Одно или несколько полей из текущего результата запроса, определяющие порядок возвращаемых значений. Имена полей должны быть разделены запятыми (,). Можно определить каждое поле как отсортированное в возрастающем или убывающем порядке с помощью ключевых слов Ascending и Descending. Если не указаны ключевые слова Ascending или Descending, сортировка по умолчанию происходит по возрастанию. Поля порядка сортировки получают приоритет слева направо.

Заметки

Чтобы отсортировать результаты запроса, используйте предложение Order By. Предложение Order By может сортировать результаты, основанные только на переменной диапазона для текущей области. Например, предложение Select представляет новую область в выражении запроса с новыми переменными итерации для этой области. Диапазон переменных, определенные до предложения Select в запросе, будут недоступны после предложения Select. Таким образом, если требуется упорядочить результаты по полю, не доступному в предложении Select, необходимо поместить предложение Order By перед предложением Select. Например, это может понадобиться для сортировки запроса по полям, которые не возвращаются как часть результата.

Порядок по возрастанию и убыванию для поля определяется реализацией интерфейса IComparable для типа данных поля. Если тип данных не реализует интерфейс IComparable, порядок сортировки игнорируется.

Пример

Следующее выражение запроса использует предложение From для объявления диапазона переменной book для коллекции books. Предложение Order By сортирует результаты запроса по цене в возрастающем порядке (по умолчанию). Книги с одной и той же ценой сортируются по названию в возрастающем порядке. Предложение Select выбирает свойства Title и Price в качестве значений, возвращаемых по запросу.

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

Следующее выражение запроса использует предложение Order By для сортировки результатов запроса по цене в убывающем порядке. Книги с одной и той же ценой сортируются по названию в возрастающем порядке.

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

Следующее выражение запроса использует предложение Select для выбора названия книги, цены, даты издания и автора. Затем заполняются поля Title, Price, PublishDate и Author переменной диапазона для новой области. Предложение Order By упорядочивает новую переменную диапазона по имени автора, названию книги и затем по цене. Каждый столбец сортируется в порядке по умолчанию (по возрастанию).

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

См. также

Ссылки

Предложение Select (Visual Basic)

Предложение From (Visual Basic)

Основные понятия

Знакомство с LINQ в Visual Basic

Другие ресурсы

Запросы (Visual Basic)