Skip-Klausel (Visual Basic)

Überspringt eine festgelegte Anzahl von Elementen in einer Auflistung und gibt anschließend die übrigen Elemente zurück.

Syntax

Skip count  

Bestandteile

count
Erforderlich. Ein Wert oder ein Ausdruck, der die Anzahl der zu überspringenden Elemente der Sequenz auswertet

Bemerkungen

Die Skip-Klausel bewirkt, dass eine Abfrage Elemente am Anfang einer Ergebnisliste umgeht und die verbleibenden Elemente zurückgibt. Die Anzahl der zu überspringenden Elemente wird durch den count-Parameter identifiziert.

Sie können die Skip-Klausel mit der Take-Klausel verwenden, um einen Datenbereich aus einem beliebigen Segment einer Abfrage zurückzugeben. Übergeben Sie hierzu den Index des ersten Elements des Bereichs an die Skip-Klausel und die Größe des Bereichs an die Take-Klausel.

Wenn Sie die Skip-Klausel in einer Abfrage verwenden, sollten Sie zudem sicherstellen, dass die Ergebnisse in einer Reihenfolge zurückgegeben werden, in der die Skip-Klausel die beabsichtigten Ergebnisse umgehen kann. Weitere Informationen zum Sortieren von Abfrageergebnissen finden Sie unter Order By-Klausel.

Mit der SkipWhile-Klausel können Sie angeben, dass abhängig von einer angegebenen Bedingung nur bestimmte Elemente ignoriert werden.

Beispiel

Im folgenden Codebeispiel wird die Skip-Klausel zusammen mit der Take-Klausel verwendet, um Daten aus einer Abfrage in Seiten zurückzugeben. Die GetCustomers-Funktion verwendet die Skip-Klausel, um die Kunden in der Liste bis zum angegebenen Anfangsindexwert zu umgehen, und verwendet die Take-Klausel, um eine Seite von Kunden zurückzugeben, die mit diesem Indexwert beginnen.

Public Sub PagingSample()
    Dim pageNumber As Integer = 0
    Dim pageSize As Integer = 10

    Dim customersPage = GetCustomers(pageNumber * pageSize, pageSize)

    Do While customersPage IsNot Nothing
        Console.WriteLine(vbCrLf & "Page: " & pageNumber + 1 & vbCrLf)

        For Each cust In customersPage
            Console.WriteLine(cust.CustomerID & ", " & cust.CompanyName)
        Next

        Console.WriteLine(vbCrLf)

        pageNumber += 1
        customersPage = GetCustomers(pageNumber * pageSize, pageSize)
    Loop
End Sub

Public Function GetCustomers(ByVal startIndex As Integer,
                             ByVal pageSize As Integer) As List(Of Customer)

    Dim customers = GetCustomerList()

    Dim returnCustomers = From cust In customers
                          Skip startIndex Take pageSize

    If returnCustomers.Count = 0 Then Return Nothing

    Return returnCustomers
End Function

Weitere Informationen