次の方法で共有


Order By 句 (Visual Basic)

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

構文

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]

指定項目

orderExp1 必須。 返される値の順序付け方法を示す、現在のクエリ結果の 1 つまたは複数のフィールド。 フィールド名は、コンマ (,) で区切る必要があります。 Ascending または Descending キーワードを使用して、昇順または降順で並べ替えて各フィールドを識別できます。 Ascending または Descending キーワードが指定されていない場合、既定の並べ替え順序は昇順です。 並べ替え順序のフィールドは、左から右に優先されます。

Remarks

Order By 句を使用して、クエリの結果を並べ替えることができます。 Order By 句では、現在のスコープの範囲変数に基づいてのみ結果を並べ替えることができます。 たとえば、Select 句では、クエリ式に新しいスコープを導入し、そのスコープの新しい繰り返し変数を指定します。 クエリ内の Select 句の前に定義された範囲変数は、Select 句の後では使用できません。 そのため、Select 句で使用できないフィールドで結果を並べ替える場合は、Order By 句を Select 句の前に配置する必要があります。 これを行う必要がある場合の 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

関連項目