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órios. Um valor ou uma expressão que é avaliada como o número de elementos da sequência a ser ignorada.
Comentários
A cláusula Skip
faz com que uma consulta ignore os elementos no início de uma lista de resultados e retorne os elementos restantes. O número de elementos a serem ignorados é identificado pelo parâmetro count
.
Você pode usar a cláusula Skip
com a cláusula Take
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 cláusula Skip
e o tamanho do intervalo para a cláusula Take
.
Ao usar a cláusula Skip
em uma consulta, talvez você também precise garantir que os resultados sejam retornados em uma ordem que permitirá que a cláusula Skip
ignore os resultados pretendidos. Para obter mais informações sobre como ordenar resultados da consulta, confira Cláusula Order By.
Você pode usar a cláusula SkipWhile
para especificar que apenas determinados elementos sejam ignorados, dependendo de uma condição fornecida.
Exemplo
O exemplo de código a seguir usa a cláusula Skip
junto com a cláusula Take
para retornar dados de uma consulta em páginas. A função GetCustomers
usa a cláusula Skip
para ignorar os clientes na lista até o valor de índice inicial fornecido e usa a cláusula Take
para retornar uma página de clientes começando a partir do 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