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í jako počet prvků sekvence, které se mají vrátit.
Poznámky
Klauzule Take
způsobí, že dotaz bude obsahovat zadaný počet souvislých prvků od začátku seznamu výsledků. Počet prvků, které se mají zahrnout, je určen parametrem count
.
Klauzuli Take
s klauzulí Skip
můžete použít k vrácení rozsahu dat z libovolného segmentu dotazu. Provedete to tak, že klauzuli předáte index prvního prvku oblasti Skip
a do klauzule předáte velikost rozsahu Take
. V takovém případě musí být klauzule Take
zadána za klauzulí Skip
.
Při použití klauzule Take
v dotazu může být také potřeba zajistit, aby výsledky byly vráceny v pořadí, které klauzuli umožní Take
zahrnout zamýšlené výsledky. Další informace o řazení výsledků dotazu najdete v tématu Klauzule Řazení podle.
Pomocí klauzule TakeWhile
můžete určit, že v závislosti na zadané podmínce budou vráceny pouze určité prvky.
Příklad
Následující příklad kódu používá klauzuli Take
společně s klauzulí Skip
k vrácení dat z dotazu na stránkách. Funkce GetCustomers používá klauzuli Skip
k obejití zákazníků v seznamu až do zadané počáteční hodnoty indexu Take
a používá klauzuli k vrácení stránky zákazníků začínající z této hodnoty 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