Take (Cláusula, Visual Basic)

Actualización: noviembre 2007

Devuelve el número especificado de elementos contiguos desde el principio de una colección.

Take count

Partes

  • count
    Necesario. Valor o expresión que se evalúa como el número de elementos de la secuencia que se van a devolver.

Comentarios

La cláusula Take hace que una consulta incluya el número especificado de elementos contiguos desde el inicio de una lista de resultados. El parámetro count especifica el número de elementos que se van a incluir.

Puede usar la cláusula Take con la cláusula Skip para que se devuelva un intervalo de datos de cualquier segmento de una consulta. Para ello, pase el índice del primer elemento del intervalo a la cláusula Skip y el tamaño del intervalo a la cláusula Take. En este caso, la cláusula Take se debe especificar después de la cláusula Skip.

Al usar la cláusula Take en una consulta, puede que también necesite asegurar que los resultados se devuelven en un orden que permita a la cláusula Take incluir los resultados en cuestión. Para obtener más información sobre cómo ordenar los resultados de una consulta, vea Order By (Cláusula, Visual Basic).

Puede usar la cláusula TakeWhile para especificar que únicamente se devuelvan ciertos elementos, dependiendo de la condición proporcionada.

Ejemplo

En el ejemplo de código siguiente se usa la cláusula Take junto con la cláusula Skip para que se devuelvan los datos de una consulta en páginas. La función GetCustomers usa la cláusula Skip para que se omitan los clientes de la lista hasta el valor de índice de inicio proporcionado, y usa la cláusula Take para que se devuelva una página de los clientes a partir de ese valor 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

Vea también

Conceptos

Introducción a LINQ en Visual Basic

Referencia

Select (Cláusula, Visual Basic)

From (Cláusula, Visual Basic)

Order By (Cláusula, Visual Basic)

Take While (Cláusula, Visual Basic)

Skip (Cláusula, Visual Basic)

Otros recursos

Consultas (Visual Basic)