Поделиться через


Предложение Skip (Visual Basic)

Пропускает заданное число элементов в коллекции и возвращает остальные элементы.

Синтаксис

Skip count  

Детали

count
Обязательный. Значение или выражение, которое оценивает количество элементов последовательности, которые необходимо пропустить.

Замечания

Предложение Skip вызывает обход элементов в начале списка результатов и возвращает остальные элементы. Число пропущенных элементов определяется параметром count .

Предложение можно использовать Skip с Take предложением для возврата диапазона данных из любого сегмента запроса. Для этого передайте индекс первого элемента диапазона Skip предложению и размер диапазона предложению Take .

При использовании Skip предложения в запросе также может потребоваться убедиться, что результаты возвращаются в порядке, который позволит Skip предложению обойти предполагаемые результаты. Дополнительные сведения о заказе результатов запроса см. в предложении Order By.

Предложение можно использовать SkipWhile для указания того, что в зависимости от указанного условия игнорируются только определенные элементы.

Пример

В следующем примере кода предложение используется Skip вместе с Take предложением для возврата данных из запроса на страницах. Функция GetCustomers использует Skip предложение для обхода клиентов в списке до указанного начального значения индекса и использует Take предложение для возврата страницы клиентов, начиная с этого значения индекса.

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

См. также