Take-satsen (Visual Basic)
Returnerar ett angivet antal sammanhängande element från början av en samling.
Syntax
Take count
Delar
count
Obligatoriska. Ett värde eller ett uttryck som utvärderas till antalet element i sekvensen som ska returneras.
Kommentarer
Satsen Take
gör att en fråga innehåller ett angivet antal sammanhängande element från början av en resultatlista. Antalet element som ska inkluderas anges av parametern count
.
Du kan använda Take
-satsen med Skip
-satsen för att returnera ett dataintervall från valfritt segment av en fråga. För att göra detta skickar du indexet för det första elementet i intervallet till Skip
-satsen och storleken på intervallet till Take
-satsen. I det här fallet Take
måste satsen anges efter Skip
-satsen.
När du använder Take
-satsen i en fråga kan du också behöva se till att resultaten returneras i en ordning som gör att satsen kan Take
inkludera de avsedda resultaten. Mer information om hur du beställer frågeresultat finns i Order By Clause (Order By Clause).
Du kan använda TakeWhile
-satsen för att ange att endast vissa element ska returneras, beroende på ett angivet villkor.
Exempel
I följande kodexempel används Take
-satsen tillsammans med Skip
-satsen för att returnera data från en fråga på sidor. Funktionen GetCustomers använder Skip
-satsen för att kringgå kunderna i listan tills det angivna startindexvärdet används och använder Take
-satsen för att returnera en sida med kunder som börjar från det indexvärdet.
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