Clausola Skip (Visual Basic)
Ignora un numero specificato di elementi in una raccolta e quindi restituisce gli elementi rimanenti.
Sintassi
Skip count
Parti
count
Obbligatorio. Valore o espressione che restituisce il numero di elementi della sequenza da ignorare.
Osservazioni:
La clausola Skip
fa sì che una query ignori gli elementi all'inizio di un elenco risultati e restituisca gli elementi rimanenti. Il numero di elementi da ignorare è identificato dal parametro count
.
È possibile utilizzare la clausola Skip
con la clausola Take
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 Skip
e le dimensioni dell'intervallo alla clausola Take
.
Quando si usa la clausola Skip
in una query, potrebbe anche essere necessario assicurarsi che i risultati vengano restituiti in un ordine che consentirà alla clausola Skip
di ignorare i risultati previsti. Per altre informazioni sull'ordinamento dei risultati della query, vedere Clausola Order By.
È possibile utilizzare la clausola SkipWhile
per specificare che solo determinati elementi vengano ignorati, a seconda di una condizione fornita.
Esempio
Nell'esempio di codice seguente viene utilizzata la clausola Skip
insieme alla clausola Take
per restituire dati da una query nelle pagine. La funzione GetCustomers
usa la clausola Skip
per ignorare i clienti nell'elenco fino al valore di indice iniziale specificato e usa la clausola Take
per restituire una pagina di 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