Partager via


Take, clause (Visual Basic)

Mise à jour : novembre 2007

Retourne un nombre spécifié d'éléments contigus à partir du début d'une collection.

Take count

Éléments

  • count
    Obligatoire. Valeur ou expression qui prend la valeur du nombre d'éléments de la séquence à retourner.

Notes

La clause Take entraîne l'inclusion dans une requête d'un nombre spécifié d'éléments contigus dès le début d'une liste des résultats. Le nombre d'éléments à inclure est spécifié par le paramètre count.

Vous pouvez utiliser la clause Take avec la clause Skip pour retourner une plage de données de n'importe quel segment d'une requête. Pour ce faire, passez l'index du premier élément de la plage à la clause Skip et la taille de la plage à la clause Take. Dans ce cas, la clause Take doit être spécifiée après la clause Skip.

Lorsque vous utilisez la clause Take dans une requête, vous devez également vous assurer que les résultats sont retournés dans un ordre qui permettra à la clause Take d'inclure les résultats prévus. Pour plus d'informations sur la façon de commander des résultats de requête, consultez Order By, clause (Visual Basic).

Vous pouvez utiliser la clause TakeWhile pour spécifier que seuls certains éléments soient retournés, selon une condition fournie.

Exemple

L'exemple de code suivant associe la clause Take à la clause Skip pour retourner les données d'une requête dans des pages. La fonction GetCustomers utilise la clause Skip pour ignorer les clients dans la liste jusqu'à la valeur d'index de départ fournie et utilise la clause Take pour retourner une page de clients qui débute à 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

Voir aussi

Concepts

Introduction à LINQ dans Visual Basic

Référence

Select, clause (Visual Basic)

From, clause (Visual Basic)

Order By, clause (Visual Basic)

Take While, clause (Visual Basic)

Skip, clause (Visual Basic)

Autres ressources

Requêtes (Visual Basic)