Предложение 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