Order By 句 (Visual Basic)

更新 : 2007 年 11 月

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

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 プロパティのみを選択します。

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、Publisher、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 句 (Visual Basic)

From 句 (Visual Basic)

その他の技術情報

クエリ (Visual Basic)