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

Confira também