Take 子句 (Visual Basic)

从集合的开头返回指定数量的连续元素。

语法

Take count  

组成部分

count
必需。 一个值或表达式,其计算结果为要返回的序列的元素数。

注解

Take 子句使查询包括从结果列表的开头开始的指定数量的连续元素。 要包括的元素数由 count 参数指定。

可以结合使用 Take 子句与 Skip 子句,以从查询的任何段返回某一范围的数据。 为此,请将该范围内第一个元素的索引传递给 Skip 子句,并将该范围的大小传递给 Take 子句。 在这种情况下,Take 子句必须在 Skip 子句之后指定。

在查询中使用 Take 子句时,可能还需要确保返回结果的顺序能够使 Take 子句包括预期结果。 有关对查询结果进行排序的详细信息,请参阅 Order By 子句

可以使用 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

另请参阅