次の方法で共有


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 インターフェイスを実装していない場合、並べ替え順序は無視されます。

使用例

次のクエリ式では、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

次のクエリ式は、Order By 句を使用して、クエリ結果を価格の降順に並べ替えます。同じ価格の本は、書名の昇順に並べられます。

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

次のクエリ式は、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

参照

関連項目

Select 句 (Visual Basic)

From 句 (Visual Basic)

概念

Visual Basic における LINQ の概要

その他の技術情報

クエリ (Visual Basic)