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