Partitionieren von Daten

Partitionieren in LINQ ist der Vorgang, bei dem eine Eingabesequenz in zwei Abschnitte unterteilt wird, ohne die Elemente neu anzuordnen. Dann wird einer der Abschnitte zurückgegeben.

Die folgende Abbildung veranschaulicht die Ergebnisse von drei verschiedenen Partitionierungsoperationen für eine Sequenz von Zeichen. Die erste Operation gibt die ersten drei Elemente in der Sequenz zurück. Die zweite Operation überspringt die ersten drei Elemente und gibt die übrigen Elemente zurück. Die dritte Operation überspringt die ersten zwei Elemente in der Sequenz und gibt die nächsten drei Elemente zurück.

LINQ-Partitionierungsvorgänge

Die Standardabfrageoperator-Methoden, die Sequenzen partitionieren, werden im folgenden Abschnitt aufgelistet.

Operatoren

Name des Operators

Beschreibung

C#-Abfrageausdruckssyntax

Visual Basic-Abfrageausdruckssyntax

Weitere Informationen

Skip

Überspringt die Elemente bis zu einer angegebenen Position in einer Sequenz.

Nicht zutreffend.

Skip

Enumerable.Skip<TSource>

Queryable.Skip<TSource>

SkipWhile

Überspringt die Elemente basierend auf einer Prädikatfunktion, bis ein Element die Bedingung nicht erfüllt.

Nicht zutreffend.

Skip While

Enumerable.SkipWhile

Queryable.SkipWhile

Take

Übernimmt die Elemente bis zu einer angegebenen Position in einer Sequenz.

Nicht zutreffend.

Take

Enumerable.Take<TSource>

Queryable.Take<TSource>

TakeWhile

Übernimmt die Elemente basierend auf einer Prädikatfunktion, bis ein Element die Bedingung nicht erfüllt.

Nicht zutreffend.

Take While

Enumerable.TakeWhile

Queryable.TakeWhile

Beispiele für die Abfrageausdruckssyntax

Skip

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 restlichen Zeichenfolgen des Arrays 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 ein "a" ist. Die übrigen 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 zwei 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 die Zeichenfolgen in einem Array zurückzugeben, wenn die Länge der Zeichenfolge fünf oder weniger Zeichen 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

Referenz

Skip-Klausel (Visual Basic)

Skip While-Klausel (Visual Basic)

Take-Klausel (Visual Basic)

Take While-Klausel (Visual Basic)

System.Linq

Konzepte

Übersicht über Standardabfrageoperatoren