データの並べ替え (Visual Basic)
並べ替え操作では、1 つ以上の属性に基づいてシーケンスの要素を並べ替えます。 並べ替えの第 1 条件で、要素に対して一回目の並べ替えが実行されます。 第 2 条件を指定すると、第 1 条件で並べ替えられた各グループ内の要素を並べ替えることができます。
次の図は、文字のシーケンスに対してアルファベット順の並べ替え操作を実行した結果を示しています。
次のセクションでは、データの並べ替えを実行する標準クエリ演算子のメソッドの一覧を示します。
メソッド
メソッド名 | 説明 | 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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET