Take 句 (Visual Basic)
コレクションの先頭から、指定された数の連続する要素を返します。
構文
Take count
指定項目
count
必須です。 返されるシーケンスの要素数に評価される値または式。
Remarks
Take
句を指定すると、結果リストの先頭から指定した数の連続した要素がクエリに含まれます。 含まれる要素の数は count
パラメーターによって指定します。
Skip
句と共に Take
句を使用すると、クエリの任意のセグメントからのデータの範囲を返すことができます。 これを行うには、範囲の最初の要素のインデックスを 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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET