クエリ結果の並べ替え順序を指定します。
構文
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
部品
orderExp1
必須。 現在のクエリ結果から返される値の順序を識別する 1 つ以上のフィールド。 フィールド名はコンマ (,) で区切る必要があります。
Ascending
キーワードまたはDescending
キーワードを使用して、各フィールドを昇順または降順で並べ替えて識別できます。
Ascending
またはDescending
キーワードが指定されていない場合、既定の並べ替え順序は昇順になります。 並べ替え順序フィールドは、左から右に優先順位が付けられます。
注釈
Order By
句を使用して、クエリの結果を並べ替えることができます。
Order By
句は、現在のスコープの範囲変数に基づいてのみ結果を並べ替えることができます。 たとえば、 Select
句では、クエリ式に新しいスコープが導入され、そのスコープの新しい反復変数が含まれます。 クエリの Select
句の前に定義された範囲変数は、 Select
句の後には使用できません。 したがって、Select
句で使用できないフィールドで結果を並べ替える場合は、Select
句の前に Order By
句を配置する必要があります。 これを行う必要がある場合の 1 つの例は、結果の一部として返されないフィールドでクエリを並べ替える場合です。
フィールドの昇順と降順は、フィールドのデータ型の IComparable インターフェイスの実装によって決まります。 データ型が IComparable インターフェイスを実装していない場合、並べ替え順序は無視されます。
例 1
次のクエリ式では、From
句を使用して、books
コレクションの範囲変数book
を宣言します。
Order By
句は、クエリ結果を価格順 (既定値) で並べ替えます。 価格が同じ書籍は、タイトルで昇順に並べ替えられます。
Select
句は、クエリによって返される値としてTitle
プロパティと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
、 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
こちらも参照ください
- Visual Basic での LINQ の概要
- クエリ
- Select 句
- From 句
.NET