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

Definição

Retorna um número especificado de elementos contíguos do início de uma sequência.Returns a specified number of contiguous elements from the start of a sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ Take(System::Collections::Generic::IEnumerable<TSource> ^ source, int count);
public static System.Collections.Generic.IEnumerable<TSource> Take<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, int count);
static member Take : seq<'Source> * int -> seq<'Source>
<Extension()>
Public Function Take(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>

A sequência da qual os elementos serão retornados.The sequence to return elements from.

count
Int32 Int32 Int32 Int32

O número de elementos a serem retornados.The number of elements to return.

Retornos

IEnumerable<TSource>

Um IEnumerable<T> que contém o número especificado de elementos do início da sequência de entrada.An IEnumerable<T> that contains the specified number of elements from the start of the input sequence.

Exceções

Exemplos

O exemplo de código a seguir demonstra como usar Take para retornar os elementos desde o início de uma sequência.The following code example demonstrates how to use Take to return elements from the start of a sequence.

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

IEnumerable<int> topThreeGrades =
    grades.OrderByDescending(grade => grade).Take(3);

Console.WriteLine("The top three grades are:");
foreach (int grade in topThreeGrades)
{
    Console.WriteLine(grade);
}
/*
 This code produces the following output:

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

' Get the highest three grades by first sorting
' them in descending order and then taking the
' first three values.
Dim topThreeGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(grade) grade) _
.Take(3)

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

' This code produces the following output:
'
' The top three grades are:
' 98
' 92
' 85

Comentários

Esse método é implementado usando a execução adiada.This method is implemented by using deferred execution. O imediata valor retornado é 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 é enumerado chamando-se suas GetEnumerator método diretamente ou usando 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.

Take Enumera source e gera elementos de até count elementos foram produzidos ou source não contém mais nenhum elemento.Take enumerates source and yields elements until count elements have been yielded or source contains no more elements. Se count excede o número de elementos no source, todos os elementos de source são retornados.If count exceeds the number of elements in source, all elements of source are returned.

Se count é menor que ou igual a zero, source não é enumerada e um vazio IEnumerable<T> é retornado.If count is less than or equal to zero, source is not enumerated and an empty IEnumerable<T> is returned.

O Take e Skip métodos são complementa funcional.The Take and Skip methods are functional complements. Dada uma determinada sequência coll e um número inteiro n, concatenando os resultados de coll.Take(n) e coll.Skip(n) produz a mesma sequência que 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.

Na sintaxe de expressão de consulta do Visual Basic, uma Take cláusula se traduz em uma invocação de Take.In Visual Basic query expression syntax, a Take clause translates to an invocation of Take.

Aplica-se a

Veja também