クエリ結果の並べ替え順序を指定します。
構文
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