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 causa l'inclusione di un numero specificato di elementi contigui dall'inizio di un elenco di risultati. Il numero di elementi da includere è specificato dal count
parametro .
È possibile usare la clausola con la Take
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 Skip
clausola e alle dimensioni dell'intervallo alla Take
clausola . In questo caso, la Take
clausola deve essere specificata dopo la Skip
clausola .
Quando si usa la Take
clausola in una query, potrebbe anche essere necessario assicurarsi che i risultati vengano restituiti in un ordine che consentirà alla Take
clausola di includere i risultati previsti. Per altre informazioni sull'ordinamento dei risultati delle query, vedere Order By Clause.
È possibile usare la TakeWhile
clausola per specificare che vengono restituiti solo alcuni elementi, a seconda di una condizione specificata.
Esempio
Nell'esempio di codice seguente viene usata la Take
clausola insieme alla Skip
clausola per restituire i dati da una query in pagine. La funzione GetCustomers usa la clausola per ignorare i clienti nell'elenco fino al valore dell'indice iniziale specificato e usa la Skip
Take
clausola per restituire una pagina dei clienti a partire da tale 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