Condividi tramite


Clausola Take (Visual Basic)

Restituisce un numero specificato di elementi contigui dall'inizio di una raccolta.

Take count

Parti

  • count
    Obbligatorio. Valore o espressione che restituisce il numero di elementi della sequenza da restituire.

Note

La clausola Take fa in modo che una query includa un numero specificato di elementi contigui dall'inizio di un elenco di risultati. Il numero di elementi da includere viene specificato dal parametro count.

È possibile utilizzare la clausola Take con la clausola Skip per restituire un intervallo di dati da qualsiasi segmento di una query. A tale scopo, passare l'indice del primo elemento dell'intervallo alla clausola Skip e la dimensione dell'intervallo alla clausola Take. In questo caso, la clausola Take deve venire specificata dopo la clausola Skip.

Quando si utilizza la clausola Take in una query, è necessario assicurarsi che i risultati vengano restituiti in un ordine che consente alla clausola Take di includere i risultati desiderati. Per ulteriori informazioni sull'ordinamento dei risultati di una query, vedere Clausola Order By (Visual Basic).

È possibile utilizzare la clausola TakeWhile per specificare che vengano restituiti solo determinati elementi, in funzione di una condizione fornita.

Esempio

Nell'esempio di codice seguente viene utilizzata insieme la clausola Take con la clausola Skip per restituire dati da una query in pagine. La funzione GetCustomers utilizza la clausola Skip per ignorare i clienti nell'elenco fino al valore di indice iniziale fornito e utilizza la clausola Take per restituire una pagina di clienti a partire da quel valore di indice.

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

Vedere anche

Riferimenti

Clausola Select (Visual Basic)

Clausola From (Visual Basic)

Clausola Order By (Visual Basic)

Clausola Take While (Visual Basic)

Clausola Skip (Visual Basic)

Concetti

Introduzione a LINQ in Visual Basic

Altre risorse

Query (Visual Basic)