Skip – klauzule (Visual Basic)

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

Syntax

Skip count  

Součásti

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

Poznámky

Klauzule způsobí, že dotaz obchází prvky na začátku seznamu výsledků Skip a vrátí zbývající prvky. Počet prvků, které se má přeskočit, je identifikován count parametrem .

Pomocí klauzule Skip s klauzulí Take můžete vrátit rozsah dat z libovolného segmentu dotazu. Chcete-li to provést, předejte index prvního prvku rozsahu klauzuli a velikost Skip rozsahu Take klauzuli .

Pokud v dotazu použijete klauzuli , možná budete muset také zajistit, aby se výsledky vrátily v pořadí, které klauzuli umožní obejít Skip Skip zamýšlené výsledky. Další informace o řazení výsledků dotazu najdete v tématu Klauzule Order By.

Pomocí klauzule můžete určit, že se v závislosti na zadané podmosti budou SkipWhile ignorovat pouze určité prvky.

Příklad

Následující příklad kódu používá Skip klauzuli společně s klauzulí k vrácení Take dat z dotazu na stránkách. Funkce pomocí klauzule obchází zákazníky v seznamu, dokud nezadá počáteční hodnotu indexu, a pomocí klauzule vrátí stránku zákazníků začínající od GetCustomers Skip této hodnoty Take 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é