次の方法で共有


データの並べ替え (Visual Basic)

並べ替え操作では、1 つ以上の属性に基づいてシーケンスの要素を並べ替えます。 並べ替えの第 1 条件で、要素に対して一回目の並べ替えが実行されます。 第 2 条件を指定すると、第 1 条件で並べ替えられた各グループ内の要素を並べ替えることができます。

次の図は、文字のシーケンスに対してアルファベット順の並べ替え操作を実行した結果を示しています。

Graphic that shows an alphabetical sort operation.

次のセクションでは、データの並べ替えを実行する標準クエリ演算子のメソッドの一覧を示します。

メソッド

メソッド名 説明 Visual Basic のクエリ式の構文 説明
OrderBy 値を昇順に並べ替えます。 Order By Enumerable.OrderBy

Queryable.OrderBy
OrderByDescending 値を降順に並べ替えます。 Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenBy 2 番目の並べ替えを昇順で実行します。 Order By …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescending 2 番目の並べ替えを降順で実行します。 Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Reverse コレクションの要素の順序を反転させます。 該当なし。 Enumerable.Reverse

Queryable.Reverse

クエリ式の構文例

1 番目の並べ替えの例

1 番目の並べ替え (昇順)

次の例は、LINQ クエリで Order By 句を使用して、配列内の文字列を文字列長に従って昇順に並べ替える方法を示しています。

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' the
' fox
' quick
' brown
' jumps

1 番目の並べ替え (降順)

次の例は、LINQ クエリで Order By Descending 句を使用して、文字列を最初の文字に従って降順に並べ替える方法を示しています。

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Substring(0, 1) Descending
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' the
' quick
' jumps
' fox
' brown

2 番目の並べ替えの例

2 番目の並べ替え (昇順)

次の例は、LINQ クエリで Order By 句を使用して、配列内の文字列に対して 1 番目および 2 番目の並べ替えを実行する方法を示しています。 文字列は、最初に文字列長を基準として、次に文字列の最初の文字を基準として、どちらも昇順に並べ替えられます。

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1)
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' fox
' the
' brown
' jumps
' quick

2 番目の並べ替え (降順)

次の例は、LINQ クエリで Order By Descending 句を使用して、1 番目の並べ替えを昇順で実行し、2 番目の並べ替えを降順で実行する方法を示しています。 各文字列は、最初に文字列長を基準として、次に文字列の最初の文字を基準として並べ替えられます。

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1) Descending
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' fox
' the
' quick
' jumps
' brown

関連項目