Partitionieren von Daten (Visual Basic)

Partitionieren in LINQ bezieht sich auf den Vorgang, bei dem eine Eingabesequenz in zwei Abschnitte unterteilt wird, ohne die Elemente dabei neu anzuordnen, und bei dem anschließend einer der Abschnitte zurückzugeben wird.

Die folgende Abbildung zeigt das Ergebnis von drei verschiedenen Partitionierungsvorgängen einer Zeichensequenz. Der erste Vorgang gibt die ersten drei Elemente in der Sequenz zurück. Der zweite Vorgang überspringt die ersten drei Elemente und gibt die übrigen Elemente zurück. Der dritte Vorgang überspringt die ersten beiden Elemente in der Sequenz und gibt die nächsten drei Elemente zurück.

Illustration that shows three LINQ partitioning operations.

Die Methoden des Standardabfrageoperators, die Sequenzen partitionieren, sind im folgenden Abschnitt aufgeführt.

Operatoren

Name des Operators Beschreibung Visual Basic-Abfrageausdruckssyntax Weitere Informationen
Skip Überspringt Elemente bis zu einer angegebenen Position in einer Sequenz Skip Enumerable.Skip

Queryable.Skip
SkipWhile Überspringt Elemente, die auf einer Prädikatfunktion basieren, bis ein Element die Bedingung nicht erfüllt Skip While Enumerable.SkipWhile

Queryable.SkipWhile
Take Übernimmt Elemente bis zu einer angegebenen Position in einer Sequenz Take Enumerable.Take

Queryable.Take
TakeWhile Übernimmt Elemente, die auf einer Prädikatfunktion basieren, bis ein Element der Bedingung nicht erfüllt Take While Enumerable.TakeWhile

Queryable.TakeWhile
Block Diese Methode teilt die Elemente einer Sequenz in Teile mit einer festgelegten Maximalgröße auf. Enumerable.Chunk
Queryable.Chunk

Beispiele für die Abfrageausdruckssyntax

Überspringen

Im folgenden Codebeispiel wird die Skip-Klausel in Visual Basic verwendet, um die ersten vier Zeichenfolgen in einem Array von Zeichenfolgen zu überspringen, bevor die verbleibenden Zeichenfolgen im Array zurückgegeben werden.


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

Im folgenden Codebeispiel wird die Skip While-Klausel in Visual Basic verwendet, um die Zeichenfolgen in einem Array zu überspringen, wenn der erste Buchstabe der Zeichenfolge „a“ ist. Die restlichen Zeichenfolgen im Array werden zurückgegeben.


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

Im folgenden Codebeispiel wird die Take-Klausel in Visual Basic verwendet, um die ersten beiden Zeichenfolgen in einem Array von Zeichenfolgen zurückzugeben.


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

Im folgenden Codebeispiel wird die Take While-Klausel in Visual Basic verwendet, um Zeichenfolgen aus einem Array zurückzugeben, wenn die Länge der Zeichenfolge fünf Zeichen oder weniger beträgt.


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

Siehe auch