Take 子句 (Visual Basic)
从集合开始处起,返回指定数量的连续元素。
Take count
部件
- count
必选。一个值或一个表达式,等于要返回的序列的元素个数。
备注
如果使用 Take 子句,则查询包括从结果列表开始处起的指定数量的连续元素。要包括的元素个数是由 count 参数指定的。
同时使用 Take 子句和 Skip 子句可以从查询的任何位置起返回一定范围的数据。为此,请该范围的第一个元素的索引传递给 Skip 子句,将该范围的大小传递给 Take 子句。这种情况下,必须在 Skip 子句之后指定 Take 子句。
如果在查询中使用 Take 子句,还需要确保按顺序返回结果,这样 Take 子句才能包括预期的结果。有关对查询结果进行排序的更多信息,请参见 Order By 子句 (Visual Basic)。
使用 TakeWhile 子句可以指定,根据提供的条件仅返回某些元素。
示例
下面的代码示例同时使用 Take 子句和 Skip 子句在页面中返回查询数据。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