Cláusula Skip (Visual Basic)
Ignora um número especificado de elementos em uma coleção e, em seguida, retorna os elementos restantes.
Sintaxe
Skip count
Partes
count
Obrigatório. Um valor ou uma expressão que avalia o número de elementos da sequência a ser ignorada.
Observações
A Skip
cláusula faz com que uma consulta ignore elementos no início de uma lista de resultados e retorne os elementos restantes. O número de elementos a serem ignorados é identificado pelo count
parâmetro.
Você pode usar a Skip
cláusula com a Take
cláusula para retornar um intervalo de dados de qualquer segmento de uma consulta. Para fazer isso, passe o índice do primeiro elemento do intervalo para a Skip
cláusula e o tamanho do intervalo para a Take
cláusula.
Ao usar a Skip
cláusula em uma consulta, talvez também seja necessário garantir que os resultados sejam retornados em uma ordem que permita que a Skip
cláusula ignore os resultados pretendidos. Para obter mais informações sobre como ordenar os resultados da consulta, consulte Encomendar por cláusula.
Você pode usar a SkipWhile
cláusula para especificar que apenas determinados elementos são ignorados, dependendo de uma condição fornecida.
Exemplo
O exemplo de código a seguir usa a Skip
cláusula juntamente com a Take
cláusula para retornar dados de uma consulta em páginas. A GetCustomers
função usa a Skip
cláusula para ignorar os clientes na lista até o valor de índice inicial fornecido e usa a Take
cláusula para retornar uma página de clientes a partir desse valor de índice.
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