Take 句 (Visual Basic)
コレクションの先頭から、指定された数の連続する要素を返します。
Take count
指定項目
- count
必ず指定します。 値、または返される連続する要素の数に評価される式。
解説
Take 句を使用すると、結果リストの先頭から取得された、指定した数の連続する要素がクエリに含まれます。 含まれる要素の数は、count パラメーターによって指定されます。
Take 句をSkip 句と一緒に使用して、クエリの任意の部分の範囲のデータを返すことができます。 これを行うには、範囲の先頭となる要素のインデックスを Skip 句に渡し、範囲のサイズを Take 句に渡します。 この場合、Take 句は、Skip 句の後ろに指定する必要があります。
クエリで 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