Предложение Order By (Visual Basic)
Обновлен: Ноябрь 2007
Указывает порядок сортировки для результата запроса.
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 в качестве значения, возвращаемого по запросу.
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, Publisher и Author переменной диапазона для новой области. Предложение Order By упорядочивает новую переменную диапазона по имени автора, названию книги и затем по цене. Каждый столбец сортируется в порядке по умолчанию (по возрастанию).
Dim bookOrders = _
From book In books _
Select book.Title, book.Price, book.PublishDate, book.Author _
Order By Author, Title, Price
См. также
Основные понятия
Знакомство с LINQ в Visual Basic
Ссылки
Предложение Select (Visual Basic)