Skip, clause (Visual Basic)
Ignore un nombre spécifié d’éléments dans une collection, puis retourne les éléments restants.
Syntaxe
Skip count
Éléments
count
Obligatoire. Valeur ou expression qui prend la valeur du nombre d’éléments de la séquence à ignorer.
Notes
La clause Skip
entraîne le contournement d’une requête des éléments au début d’une liste de résultats et retourne les éléments restants. Le nombre d’éléments à ignorer est identifié par le paramètre count
.
Vous pouvez utiliser la clause Skip
avec la clause Take
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 clause Skip
et la taille de la plage à la clause Take
.
Lorsque vous utilisez la clause Skip
dans une requête, vous devrez peut-être également vous assurer que les résultats sont retournés dans un ordre qui permettra à la clause Skip
de contourner 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 clause SkipWhile
pour spécifier que seuls certains éléments sont ignorés, en fonction d’une condition fournie.
Exemple
L’exemple de code suivant utilise la clause Skip
avec la clause Take
pour retourner des données à partir d’une requête dans des pages. La fonction GetCustomers
utilise la clause Skip
pour contourner les clients de la liste jusqu’à ce que la valeur d’index de départ fournie, et utilise la clause Take
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