Take – klauzule (Visual Basic)

Vrátí zadaný počet souvislých prvků od začátku kolekce.

Syntaxe

Take count  

Součástky

count
Povinný: Hodnota nebo výraz, který se vyhodnotí jako počet prvků sekvence, které se mají vrátit.

Poznámky

Klauzule Take způsobí, že dotaz zahrne zadaný počet souvislých prvků od začátku seznamu výsledků. Parametr určuje count počet prvků, které se mají zahrnout.

Klauzuli Take s Skip 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. V tomto případě Take musí být klauzule zadána za klauzulí Skip .

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

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

Příklad

Následující příklad kódu používá Take klauzuli společně s Skip 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 Take a pomocí 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é