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