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é