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.
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