次の方法で共有


Skip 句 (Visual Basic)

更新 : 2007 年 11 月

コレクション内の指定された数の要素をバイパスし、残りの要素を返します。

Skip count

指定項目

  • count
    必ず指定します。スキップする連続する要素の数として評価される値または式です。

解説

Skip 句を使用すると、クエリは結果リストの先頭から指定した数の要素をバイパスし、残りの要素を返します。スキップする要素の数は、count パラメータで指定します。

Skip 句を Take 句と一緒に使用して、クエリの任意の部分のデータ範囲を返すことができます。これを行うには、範囲の先頭となる要素のインデックスを Skip 句に渡し、範囲のサイズを Take 句に渡します。

クエリで Skip 句を使用するときは、Skip 句が意図した結果をバイパスできるような順序で結果が返されることも、確認することが必要になる場合があります。クエリ結果の順序の詳細については、「Order By 句 (Visual Basic)」を参照してください。

SkipWhile 句を使用すると、指定した条件に応じた特定の要素だけが無視されるように指定できます。

使用例

次のコード例では、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

参照

概念

Visual Basic における LINQ の概要

参照

Select 句 (Visual Basic)

From 句 (Visual Basic)

Order By 句 (Visual Basic)

Skip While 句 (Visual Basic)

Take 句 (Visual Basic)

その他の技術情報

クエリ (Visual Basic)