Enumerable.Skip<TSource>(IEnumerable<TSource>, Int32) 方法

定義

略過序列中指定的項目數目,然後傳回其餘項目。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

傳回其餘項目之前要略過的項目數目。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.

例外狀況

sourcenullsource is null.

範例

下列程式碼範例示範如何使用 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
Console.WriteLine(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 方法,或是在 Visual Basic 中C#使用 Visual 或 For Each 中的 foreachThe 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) 的結果,會產生與 coll相同的順序。Given 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.

適用於

另請參閱