Enumerable.Take<TSource>(IEnumerable<TSource>, Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.