Dela via


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

Se även