データのパーティション分割 (Visual Basic)
LINQ におけるパーティション分割とは、要素を並べ替えずに入力シーケンスを 2 つのセクションに分割し、それらのセクションの 1 つを返す操作を指します。
次の図は、文字のシーケンスに対して 3 つの異なるパーティション分割操作を実行した結果を示しています。 最初の操作では、シーケンスの最初の 3 つの要素が返されます。 2 番目の操作では、最初の 3 つの要素がスキップされ、残りの要素が返されます。 3 番目の操作では、シーケンスの最初の 2 つの要素がスキップされ、次の 3 つの要素が返されます。
次のセクションに、シーケンスのパーティション分割を実行する標準クエリ演算子メソッドの一覧を示します。
演算子
演算子名 | 説明 | Visual Basic のクエリ式の構文 | 説明 |
---|---|---|---|
Skip | シーケンス内の指定した位置まで要素をスキップします。 | Skip |
Enumerable.Skip Queryable.Skip |
SkipWhile | 述語関数に基づき、条件を満たさない要素が出現する位置まで要素をスキップします。 | Skip While |
Enumerable.SkipWhile Queryable.SkipWhile |
Take | シーケンス内の指定した位置までの要素を取得します。 | Take |
Enumerable.Take Queryable.Take |
TakeWhile | 述語関数に基づき、条件を満たさない要素が出現する位置までの要素を取得します。 | Take While |
Enumerable.TakeWhile Queryable.TakeWhile |
チャンク | シーケンスの要素を、指定された最大サイズのチャンクに分割します。 | Enumerable.Chunk Queryable.Chunk |
クエリ式の構文例
Skip
次のコード例は、Visual Basic の Skip
句を使用し、文字列配列に格納されている最初の 4 つの文字列をスキップして残りの文字列を返します。
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip 4
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' keeps
' the
' doctor
' away
SkipWhile
次のコード例は、Visual Basic の Skip While
句を使用し、配列内の文字列のうち、先頭文字が "a" である文字列をスキップします。 配列に格納されている残りの文字列が返されます。
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip While word.Substring(0, 1) = "a"
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' day
' keeps
' the
' doctor
' away
Take
次のコード例は、Visual Basic の Take
句を使用して、文字列配列内の最初の 2 つの文字列を返します。
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take 2
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
TakeWhile
次のコード例は、Visual Basic の Take While
句を使用し、配列から長さが 5 以下である文字列を返します。
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take While word.Length < 6
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
' a
' day
' keeps
' the
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET