Enumerable.Skip<TSource>(IEnumerable<TSource>, Int32) Método
Definição
Ignora um número especificado de elementos em uma sequência e retorna os elementos restantes.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)
Parâmetros de tipo
- TSource
O tipo dos elementos de source
.The type of the elements of source
.
Parâmetros
- source
- IEnumerable<TSource>
Um IEnumerable<T> do qual os elementos serão retornados.An IEnumerable<T> to return elements from.
- count
- Int32
O número de elementos a serem ignorados antes de retornar os elementos restantes.The number of elements to skip before returning the remaining elements.
Retornos
- IEnumerable<TSource>
Um IEnumerable<T> que contém os elementos que ocorrem após o índice especificado na sequência de entrada.An IEnumerable<T> that contains the elements that occur after the specified index in the input sequence.
Exceções
source
é null
.source
is null
.
Exemplos
O exemplo de código a seguir demonstra como usar Skip o para ignorar um número especificado de elementos em uma matriz classificada e retornar os elementos restantes.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
Comentários
Esse método é implementado usando a execução adiada.This method is implemented by using deferred execution. O valor de retorno imediato é um objeto que armazena todas as informações necessárias para executar a ação.The immediate return value is an object that stores all the information that is required to perform the action. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando o GetEnumerator
método diretamente ou usando o foreach
no Visual C# ou For Each
no 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.
Se source
contiver menos count
elementos do que um vazio IEnumerable<T> será retornado.If source
contains fewer than count
elements, an empty IEnumerable<T> is returned. Se count
for menor ou igual a zero, todos os elementos de source
serão resultantes.If count
is less than or equal to zero, all elements of source
are yielded.
Os Take Skip métodos e são complementos funcionais.The Take and Skip methods are functional complements. Dada uma sequência coll
e um inteiro n
, concatenando os resultados de coll.Take(n)
e coll.Skip(n)
gera a mesma sequência como 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
.
Em Visual Basic sintaxe de expressão de consulta, uma Skip
cláusula se traduz em uma invocação de Skip .In Visual Basic query expression syntax, a Skip
clause translates to an invocation of Skip.