Sdílet prostřednictvím


Skip – klauzule (Visual Basic)

Obchází zadaný počet prvků v kolekci a vrátí zbývající prvky.

Syntaxe

Skip count  

Součástky

count
Povinné. Hodnota nebo výraz, který se vyhodnotí jako počet prvků sekvence, které se mají přeskočit.

Poznámky

Klauzule Skip způsobí, že dotaz vynechá elementy na začátku seznamu výsledků a vrátí zbývající prvky. Parametr identifikuje count počet prvků, které se mají přeskočit.

Klauzuli Skip s Take klauzulí můžete použít k vrácení rozsahu dat z libovolného segmentu dotazu. Uděláte to tak, že předáte index prvního prvku rozsahu Skip klauzuli a velikost rozsahu Take do klauzule.

Při použití Skip klauzule v dotazu může být také nutné zajistit, aby výsledky byly vráceny v pořadí, které Skip umožní klauzuli obejít zamýšlené výsledky. Další informace o řazení výsledků dotazu naleznete v tématu Order By – klauzule.

Klauzuli SkipWhile můžete použít k určení, že se v závislosti na zadané podmínce ignorují jenom určité prvky.

Příklad

Následující příklad kódu používá Skip klauzuli společně s Take klauzulí k vrácení dat z dotazu na stránkách. Funkce GetCustomers používá Skip klauzuli k obejití zákazníků v seznamu, dokud zadaná počáteční hodnota indexu a pomocí Take této klauzule vrátí stránku zákazníků počínaje danou hodnotou indexu.

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

Viz také