Enumerable.Skip(IEnumerable<TSource>, Int32) Enumerable.Skip(IEnumerable<TSource>, Int32) Enumerable.Skip(IEnumerable<TSource>, Int32) Enumerable.Skip(IEnumerable<TSource>, Int32) Method

定义

跳过序列中指定数量的元素,然后返回剩余的元素。Bypasses a specified number of elements in a sequence and then returns the remaining elements.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ Skip(System::Collections::Generic::IEnumerable<TSource> ^ source, int count);
public static System.Collections.Generic.IEnumerable<TSource> Skip<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, int count);
static member Skip : seq<'Source> * int -> seq<'Source>
<Extension()>
Public Function Skip(Of TSource) (source As IEnumerable(Of TSource), count As Integer) As IEnumerable(Of TSource)

类型参数

TSource

source 的元素类型。The type of the elements of source.

参数

source
IEnumerable<TSource>

要从中返回元素的 IEnumerable<T>An IEnumerable<T> to return elements from.

count
Int32 Int32 Int32 Int32

返回剩余元素前要跳过的元素数量。The number of elements to skip before returning the remaining elements.

返回

IEnumerable<TSource>

一个 IEnumerable<T>,包含输入序列中指定索引后出现的元素。An IEnumerable<T> that contains the elements that occur after the specified index in the input sequence.

异常

示例

下面的代码示例演示如何使用Skip跳过已排序数组中指定数目的元素, 并返回剩余的元素。The following code example demonstrates how to use Skip to skip a specified number of elements in a sorted array and return the remaining elements.

int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

IEnumerable<int> lowerGrades =
    grades.OrderByDescending(g => g).Skip(3);

Console.WriteLine("All grades except the top three are:");
foreach (int grade in lowerGrades)
{
    Console.WriteLine(grade);
}

/*
 This code produces the following output:

 All grades except the top three are:
 82
 70
 59
 56
*/
' Create an array of integers that represent grades.
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}

' Sort the numbers in descending order and
' get all but the first (largest) three numbers.
Dim lowerGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(g) g) _
.Skip(3)

' Display the results.
Dim output As New System.Text.StringBuilder("All grades except the top three are:" & vbCrLf)
For Each grade As Integer In lowerGrades
    output.AppendLine(grade)
Next
MsgBox(output.ToString())

' This code produces the following output:
'
' All grades except the top three are:
' 82
' 70
' 59
' 56

注解

此方法是使用延迟执行实现的。This method is implemented by using deferred execution. 即时返回值是一个对象, 该对象存储执行操作所需的所有信息。The immediate return value is an object that stores all the information that is required to perform the action. 此方法表示的查询在枚举对象之前不会执行, 方法是直接调用其GetEnumerator方法, 或者通过在foreach视觉C#对象中For Each或在 Visual Basic 中使用。The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

如果source包含的元素count少于个, 则IEnumerable<T>返回空。If source contains fewer than count elements, an empty IEnumerable<T> is returned. 如果count小于或等于零, 则会生成的source所有元素。If count is less than or equal to zero, all elements of source are yielded.

TakeSkip方法是函数补充。The Take and Skip methods are functional complements. 给定一个序列coll和一个整数n, 串联的coll.Take(n)结果, 并coll.Skip(n)生成与相同的序列collGiven a sequence coll and an integer n, concatenating the results of coll.Take(n) and coll.Skip(n) yields the same sequence as coll.

在 Visual Basic 查询表达式语法中, Skip子句转换为对的Skip调用。In Visual Basic query expression syntax, a Skip clause translates to an invocation of Skip.

适用于

另请参阅