Share via


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

Zie ook