Take (Cláusula, Visual Basic)
Devuelve un número especificado de elementos contiguos desde el principio de una colección.
Sintaxis
Take count
Partes
count
Necesario. Valor o expresión que se evalúa como el número de elementos de la secuencia que se devuelve.
Comentarios
La cláusula hace que una consulta incluya un número especificado de elementos Take contiguos desde el principio de una lista de resultados. El parámetro especifica el número de elementos que se count incluirán.
Puede usar la cláusula Take con la cláusula para devolver un intervalo de datos de cualquier segmento de una Skip consulta. Para ello, pase el índice del primer elemento del intervalo a la cláusula y el tamaño Skip del intervalo a la cláusula Take . En este caso, la Take cláusula debe especificarse después de la Skip cláusula .
Cuando se usa la cláusula en una consulta, es posible que también tenga que asegurarse de que los resultados se devuelven en un orden que permitirá que la cláusula incluya los Take Take resultados previstos. Para obtener más información sobre cómo ordenar los resultados de la consulta, vea Order By Clause.
Puede usar la cláusula TakeWhile para especificar que solo se devuelvan determinados elementos, en función de una condición proporcionada.
Ejemplo
En el ejemplo de código siguiente se Take usa la cláusula junto con la cláusula para devolver datos de una consulta en Skip páginas. La función GetCustomers usa la cláusula para omitir los clientes de la lista hasta el valor de índice inicial proporcionado y usa la cláusula para devolver una página de clientes a partir de ese valor Skip Take de índice.
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