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