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

Zobacz też