Skip — Klauzula (Visual Basic)
Pomija określoną liczbę elementów w kolekcji, a następnie zwraca pozostałe elementy.
Składnia
Skip count
generatora
count
Wymagany. Wartość lub wyrażenie, które oblicza liczbę elementów sekwencji do pominięcia.
Uwagi
Klauzula Skip
powoduje, że zapytanie pomija elementy na początku listy wyników i zwraca pozostałe elementy. Liczba elementów do pominięcia jest identyfikowana przez count
parametr .
Możesz użyć klauzuli Skip
z klauzulą , Take
aby zwrócić zakres danych z dowolnego segmentu zapytania. W tym celu przekaż indeks pierwszego elementu zakresu do Skip
klauzuli i rozmiar zakresu do klauzuli Take
.
W przypadku użycia klauzuli Skip
w zapytaniu może być również konieczne upewnienie się, że wyniki zostaną zwrócone w kolejności, która umożliwi klauzuli Skip
obejście zamierzonych wyników. Aby uzyskać więcej informacji na temat porządkowania wyników zapytania, zobacz Klauzula Order By.
Można użyć klauzuli SkipWhile
, aby określić, że tylko niektóre elementy są ignorowane, w zależności od podanego warunku.
Przykład
Poniższy przykład kodu używa klauzuli Skip
wraz z Take
klauzulą , aby zwracać dane z zapytania na stronach. Funkcja GetCustomers
używa Skip
klauzuli , aby pominąć klientów na liście do momentu podanej wartości indeksu początkowego i używa Take
klauzuli , aby zwrócić stronę klientów rozpoczynających się od tej wartości indeksu.
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