Enumerable.Take<TSource>(IEnumerable<TSource>, Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een opgegeven aantal aaneengesloten elementen vanaf het begin van een reeks.
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)
Type parameters
- TSource
Het type van de elementen van source.
Parameters
- source
- IEnumerable<TSource>
De reeks waaruit elementen moeten worden geretourneerd.
- count
- Int32
Het aantal elementen dat moet worden geretourneerd.
Retouren
Een IEnumerable<T> met het opgegeven aantal elementen vanaf het begin van de invoerreeks.
Uitzonderingen
source is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe Take u elementen retourneert vanaf het begin van een reeks (nadat deze is gesorteerd).
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
Opmerkingen
Deze methode wordt geïmplementeerd met behulp van de uitgestelde uitvoering. De onmiddellijke retourwaarde is een object waarin alle informatie wordt opgeslagen die nodig is om de actie uit te voeren. De query die door deze methode wordt vertegenwoordigd, wordt pas uitgevoerd nadat het object is geïnventariseerd door de methode GetEnumerator rechtstreeks aan te roepen of door foreach te gebruiken in C# of For Each in Visual Basic.
Take inventariseert source en levert elementen op totdat count elementen zijn opgehaald of source geen elementen meer bevatten. Als count het aantal elementen wordt sourceoverschreden, worden alle elementen source geretourneerd.
Als count deze kleiner is dan of gelijk is aan nul, source wordt deze niet geïnventariseerd en wordt er een lege IEnumerable<T> waarde geretourneerd.
De Take en Skip methoden zijn functionele aanvullingen. Gezien een verzamelingsreeks coll en een geheel getal n, worden de resultaten samengevoegd coll.Take(n) en coll.Skip(n) wordt dezelfde reeks geretourneerd als coll.
In Visual Basic syntaxis van de query-expressie wordt een Take-component omgezet in een aanroep van Take.