Take-component (Visual Basic)
Retourneert een opgegeven aantal aaneengesloten elementen vanaf het begin van een verzameling.
Syntaxis
Take count
generator
count
Vereist. Een waarde of een expressie die resulteert in het aantal elementen van de reeks dat moet worden geretourneerd.
Opmerkingen
De Take
component zorgt ervoor dat een query vanaf het begin van een lijst met resultaten een opgegeven aantal aaneengesloten elementen bevat. Het aantal elementen dat moet worden opgenomen, wordt opgegeven door de count
parameter.
U kunt de Take
component met de Skip
component gebruiken om een bereik van gegevens te retourneren uit elk segment van een query. Hiervoor geeft u de index van het eerste element van het bereik door aan de Skip
component en de grootte van het bereik aan de Take
component. In dit geval moet de Take
component worden opgegeven na de Skip
component.
Wanneer u de Take
component in een query gebruikt, moet u er mogelijk ook voor zorgen dat de resultaten worden geretourneerd in een volgorde waarmee de Take
component de beoogde resultaten kan bevatten. Zie Order By-component voor meer informatie over het ordenen van queryresultaten.
U kunt de TakeWhile
component gebruiken om op te geven dat alleen bepaalde elementen worden geretourneerd, afhankelijk van een opgegeven voorwaarde.
Opmerking
In het volgende codevoorbeeld wordt de Take
component samen met de Skip
component gebruikt om gegevens uit een query op pagina's te retourneren. De functie GetCustomers gebruikt de Skip
component om de klanten in de lijst te omzeilen totdat de opgegeven beginindexwaarde is opgegeven en gebruikt de Take
component om een pagina van klanten te retourneren die beginnen met die indexwaarde.
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