Предложение Take (Visual Basic)
Возвращает указанное число идущих подряд элементов с начала коллекции.
Синтаксис
Take count
Детали
count
Обязательный. Значение или выражение, которое оценивает количество элементов возвращаемой последовательности.
Замечания
Предложение Take
приводит к тому, что запрос включает указанное число смежных элементов из начала списка результатов. Число элементов, которые необходимо включить, указывается параметром count
.
Предложение можно использовать Take
с Skip
предложением для возврата диапазона данных из любого сегмента запроса. Для этого передайте индекс первого элемента диапазона Skip
предложению и размер диапазона предложению Take
. В этом случае предложение Take
должно быть указано после Skip
предложения.
При использовании Take
предложения в запросе также может потребоваться убедиться, что результаты возвращаются в порядке, позволяющем Take
предложению включать предполагаемые результаты. Дополнительные сведения о заказе результатов запроса см. в предложении Order By.
Предложение можно использовать TakeWhile
для указания того, что возвращаются только определенные элементы в зависимости от указанного условия.
Пример
В следующем примере кода предложение используется Take
вместе с Skip
предложением для возврата данных из запроса на страницах. Функция 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