Предложение 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