Take – klauzule (Visual Basic)
Vrátí zadaný počet souvislých prvků od začátku kolekce.
Syntax
Take count
Součásti
count
Povinná hodnota. Hodnota nebo výraz, který se vyhodnotí na počet prvků sekvence, která se má vrátit.
Poznámky
TakeKlauzule způsobí, že dotaz zahrne zadaný počet souvislých prvků od začátku seznamu výsledků. Počet prvků, které mají být zahrnuty, je určen count parametrem.
TakeKlauzuli s klauzulí můžete použít Skip k vrácení rozsahu dat z libovolného segmentu dotazu. Provedete to tak, že předáte index prvního prvku rozsahu k Skip klauzuli a velikost rozsahu na Take klauzuli. V takovém případě Take musí být klauzule uvedena za Skip klauzulí.
Použijete-li Take klauzuli 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.
Pomocí TakeWhile klauzule můžete určit, že se v závislosti na zadané podmínce mají vracet jenom určité prvky.
Příklad
Následující příklad kódu používá Take klauzuli spolu s Skip klauzulí k vrácení dat z dotazu na stránkách. Funkce GetCustomers používá Skip klauzuli pro obejít zákazníky v seznamu až do zadané hodnoty počátečního indexu a pomocí Take klauzule vrátí stránku zákazníků počínaje touto 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