Skip 句 (Visual Basic)Skip Clause (Visual Basic)

コレクション内の指定された数の要素をバイパスし、残りの要素を返します。Bypasses a specified number of elements in a collection and then returns the remaining elements.


Skip count  


必須。Required. スキップするシーケンスの要素数に評価される値または式。A value or an expression that evaluates to the number of elements of the sequence to skip.


Skip 句を使用すると、クエリは結果リストの先頭の要素をバイパスし、残りの要素を返します。The Skip clause causes a query to bypass elements at the beginning of a results list and return the remaining elements. スキップする要素の数は、count パラメーターによって識別されます。The number of elements to skip is identified by the count parameter.

Take 句と共に Skip 句を使用すると、クエリの任意のセグメントからデータの範囲を返すことができます。You can use the Skip clause with the Take clause to return a range of data from any segment of a query. これを行うには、範囲の最初の要素のインデックスを Skip 句に渡し、範囲のサイズを Take 句に渡します。To do this, pass the index of the first element of the range to the Skip clause and the size of the range to the Take clause.

クエリで Skip 句を使用する場合は、Skip の句が意図した結果をバイパスできるように、結果が返される順序になるようにする必要もあります。When you use the Skip clause in a query, you may also need to ensure that the results are returned in an order that will enable the Skip clause to bypass the intended results. クエリ結果の順序付けの詳細については、「 Order By 句」を参照してください。For more information about ordering query results, see Order By Clause.

指定した条件に応じて、特定の要素のみを無視するように指定するには、SkipWhile 句を使用します。You can use the SkipWhile clause to specify that only certain elements are ignored, depending on a supplied condition.


次のコード例では、Take 句と共に Skip 句を使用して、ページ内のクエリからデータを返します。The following code example uses the Skip clause together with the Take clause to return data from a query in pages. GetCustomers 関数は、Skip 句を使用して、指定された開始インデックス値までリスト内の顧客をバイパスし、Take 句を使用して、そのインデックス値から始まる顧客のページを返します。The GetCustomers function uses the Skip clause to bypass the customers in the list until the supplied starting index value, and uses the Take clause to return a page of customers starting from that index value.

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)


    pageNumber += 1
    customersPage = GetCustomers(pageNumber * pageSize, pageSize)
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

参照See also