Enumerable.Take<TSource>(IEnumerable<TSource>, Int32) Méthode

Définition

Retourne un nombre spécifié d’éléments contigus à partir du début d’une séquence.

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)

Paramètres de type

TSource

Type des éléments de source.

Paramètres

source
IEnumerable<TSource>

Séquence à partir de laquelle retourner des éléments.

count
Int32

Nombre d’éléments à retourner.

Retours

IEnumerable<TSource>

Qui IEnumerable<T> contient le nombre spécifié d’éléments à partir du début de la séquence d’entrée.

Exceptions

source a la valeur null.

Exemples

L’exemple de code suivant montre comment retourner Take des éléments à partir du début d’une séquence (après son tri).

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
Console.WriteLine(output.ToString())

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

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré en appelant directement sa méthode GetEnumerator ou en utilisant foreach en C# ou For Each dans Visual Basic.

Takeénumère et génère des éléments jusqu’à ce que count les éléments aient été générés source ou source ne contiennent plus d’éléments. Si count elle dépasse le nombre d’éléments dans source, tous les éléments sont source retournés.

Si count elle est inférieure ou égale à zéro, source n’est pas énumérée et qu’une valeur vide IEnumerable<T> est retournée.

Les Take méthodes et Skip les compléments fonctionnels. Étant donné une séquence coll de collection et un entier n, concaténation des résultats et coll.Take(n)coll.Skip(n) génère la même séquence que coll.

Dans Visual Basic syntaxe d’expression de requête, une clause Take se traduit par un appel de Take.

S’applique à

Voir aussi