Enumerable.Take Méthode

Définition

Surcharges

Take<TSource>(IEnumerable<TSource>, Int32)

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

Take<TSource>(IEnumerable<TSource>, Range)

Retourne une plage spécifiée d’éléments contigus à partir d’une séquence.

Take<TSource>(IEnumerable<TSource>, Int32)

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

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

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

count
Int32

Nombre d'éléments à retourner.

Retours

IEnumerable<TSource>

IEnumerable<T> qui 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 utiliser Take pour retourner des éléments à partir du début d’une séquence.

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é soit en appelant sa GetEnumerator méthode directement, soit en utilisant foreach en Visual C# ou For Each dans Visual Basic.

Take énumère source et génère des éléments jusqu’à ce que les count éléments aient été générés ou source ne contiennent pas d’éléments supplémentaires. Si count est supérieur au nombre d’éléments dans source , tous les éléments de source sont retournés.

Si count est inférieur ou égal à zéro, source n’est pas énuméré et un vide IEnumerable<T> est retourné.

Les Take Skip méthodes et sont des compléments fonctionnels. À partir d’une séquence de collection coll et d’un entier n , la concaténation des résultats de coll.Take(n) et coll.Skip(n) donne la même séquence que coll .

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

Voir aussi

S’applique à

Take<TSource>(IEnumerable<TSource>, Range)

Retourne une plage spécifiée d’éléments contigus à partir 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, Range range);
public static System.Collections.Generic.IEnumerable<TSource> Take<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Range range);
static member Take : seq<'Source> * Range -> seq<'Source>
<Extension()>
Public Function Take(Of TSource) (source As IEnumerable(Of TSource), range As Range) As IEnumerable(Of TSource)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

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

range
Range

Plage d’éléments à retourner, qui a des index de début et de fin à partir du début ou de la fin.

Retours

IEnumerable<TSource>

IEnumerable<T>Qui contient le spécifié range d’éléments de la source séquence.

Exceptions

source a la valeur null.

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é soit en appelant sa GetEnumerator méthode directement, soit en utilisant foreach en Visual C# ou For Each dans Visual Basic.

Take énumère source et génère les éléments dont les index appartiennent au spécifié range .

S’applique à