Clausola Take (Visual Basic)

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

Sintassi

Take count  

Parti

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

Commenti

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

È possibile usare la Take clausola con la Skip clausola 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 e le dimensioni Skip dell'intervallo alla Take clausola . In questo caso, la Take clausola deve essere specificata dopo la Skip clausola .

Quando si usa la clausola in una query, potrebbe essere necessario assicurarsi che i risultati siano restituiti in un ordine che consentirà alla clausola di includere Take Take i risultati previsti. Per altre informazioni sull'ordinamento dei risultati delle query, vedere Clausola Order By.

È possibile usare la TakeWhile clausola per specificare che devono essere restituiti solo determinati elementi, a seconda di una condizione specificata.

Esempio

Nell'esempio di codice seguente viene Take utilizzata la clausola insieme alla Skip clausola per restituire dati da una query in pagine. La funzione GetCustomers usa la clausola per ignorare i clienti nell'elenco fino al valore di indice iniziale fornito e usa la clausola per restituire una pagina di clienti a partire da tale valore di Skip Take 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

Vedi anche