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在 Visual 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子句转换为调用SkipIn Visual Basic query expression syntax, a Skip clause translates to an invocation of Skip.

适用于

另请参阅