指定查詢結果的排序順序。
語法
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
組件
orderExp1 必填。 來自目前查詢結果的一或多個字段,可識別如何排序傳回的值。 功能變數名稱必須以逗號 (,) 分隔。 您可以使用 或 Descending 關鍵詞,將每個字段識別為以遞增或遞減順序Ascending排序。
Ascending如果未指定 或 Descending 關鍵詞,則預設排序順序會遞增。 排序順序欄位的優先順序是從左至右。
備註
您可以使用 Order By 子句來排序查詢的結果。
Order By子句只能根據目前範圍的範圍變數來排序結果。 例如, Select 子句會在查詢表達式中引進新的範圍,其中包含該範圍的新反覆項目變數。 在查詢中的 子句之前 Select 定義的範圍變數無法在 子句之後 Select 使用。 因此,如果您想要依子句中 Select 無法使用的欄位來排序結果,您必須將 Order By 子句放在 子句之前 Select 。 當您必須執行此動作的其中一個範例是,當您想要依未在結果中傳回的欄位排序查詢時。
欄位的遞增和遞減順序取決於 IComparable 欄位數據類型的介面實作。 如果數據類型未實 IComparable 作 介面,則會忽略排序順序。
範例 1
下列查詢表達式會使用 From 子句來宣告集合的範圍變數bookbooks。 子句會 Order By 依價格以遞增順序排序查詢結果(預設值)。 具有相同價格的書籍會以遞增順序依標題排序。 子句會將 SelectTitle 和 Price 屬性選取為查詢所傳回的值。
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
範例 2
下列查詢表達式會 Order By 使用 子句,依價格以遞減順序排序查詢結果。 具有相同價格的書籍會以遞增順序依標題排序。
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
範例 3
下列查詢表達式會使用 Select 子句來選取書籍標題、價格、發行日期和作者。 然後,它會填入Title新範圍範圍範圍變數的、 PricePublishDate、 和 Author 欄位。 子 Order By 句會依作者名稱、書名和價格來排序新的範圍變數。 每個數據行都會以預設順序排序(遞增)。
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price
另請參閱
- Visual Basic LINQ 簡介
- 查詢
- Select 子句
- From 子句