Take 子句 (Visual Basic)

從集合開頭傳回指定數目的連續項目。

語法

Take count  

組件

count
必要。 值或運算式,可評估為要傳回之序列元素的數目。

備註

Take 子句會使查詢從結果清單開頭包括指定的連續元素數目。 要包括的元素數目是由 count 參數指定的。

您可以使用 Take 子句搭配 Skip 子句,從查詢的任何區段傳回資料範圍。 若要這樣做,請將範圍第一個元素的索引傳遞至 Skip 子句,並將範圍的大小傳遞至 Take 子句。 在此案例中,Take 子句必須在 Skip 子句之後指定。

在查詢中使用 Take 子句時,建議您同時確保傳回結果的順序可讓 Take 子句包括預定的結果。 如需有關排序查詢結果的詳細資訊,請參閱 Order By 子句

您可以使用 TakeWhile 子句,視提供的條件指定只傳回特定元素。

範例

下列程式碼範例會搭配 Skip 子句使用 Take 子句,從頁面中的查詢傳回資料。 GetCustomers 函式會使用 Skip 子句略過清單中的客戶,直到提供的起始索引值為止,並使用 Take 子句傳回從該索引值開始之客戶的頁面。

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

另請參閱