次の方法で共有


Order By 句 (Visual Basic)

クエリ結果の並べ替え順序を指定します。

構文

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 句を使用して、書籍のタイトル、価格、発行日、作成者を選択します。 次に、新しいスコープの範囲変数の TitlePricePublishDate、および Author フィールドを設定します。 Order By句は、作成者名、書籍タイトル、および価格で新しい範囲変数を並べ替えています。 各列は、既定の順序 (昇順) で並べ替えられます。

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

こちらも参照ください