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


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

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

Take count

Компоненты

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

Заметки

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

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

При использовании в запросе предложения Take, возможно, необходимо будет убедиться, что результаты возвращаются в порядке, позволяющем предложению Take включать выбранные результаты. Дополнительные сведения о сортировке результатов запроса см. в разделе Предложение Order By (Visual Basic).

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

Пример

В следующем примере кода для возвращения данных из запроса на страницах предложение Take используется вместе с предложением Skip. Функция 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

См. также

Ссылки

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

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

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

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

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

Основные понятия

Знакомство с LINQ в Visual Basic

Другие ресурсы

Запросы (Visual Basic)