Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Retourne un nombre spécifié d’éléments contigus à partir du début d’une collection.
Syntaxe
Take count
Pièces
count
Obligatoire. Valeur ou expression qui prend la valeur du nombre d’éléments de la séquence à retourner.
Remarques
La Take
clause amène une requête à inclure un nombre spécifié d’éléments contigus à partir du début d’une liste de résultats. Le nombre d’éléments à inclure est spécifié par le count
paramètre.
Vous pouvez utiliser la Take
clause avec la Skip
clause pour retourner une plage de données à partir de n’importe quel segment d’une requête. Pour ce faire, transmettez l’index du premier élément de la plage à la Skip
clause et la taille de la plage à la Take
clause. Dans ce cas, la Take
clause doit être spécifiée après la Skip
clause.
Lorsque vous utilisez la Take
clause dans une requête, vous devrez peut-être également vous assurer que les résultats sont retournés dans un ordre qui permettra à la Take
clause d’inclure les résultats prévus. Pour plus d’informations sur l’ordre des résultats de requête, consultez La clause Order By.
Vous pouvez utiliser la TakeWhile
clause pour spécifier que seuls certains éléments doivent être retournés, en fonction d’une condition fournie.
Exemple :
L’exemple de code suivant utilise la Take
clause avec la Skip
clause pour retourner des données d’une requête dans des pages. La fonction GetCustomers utilise la Skip
clause pour contourner les clients de la liste jusqu’à ce que la valeur d’index de départ fournie, et utilise la Take
clause pour renvoyer une page de clients à partir de cette valeur d’index.
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