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

Consulte também