Enumerable.Take<TSource>(IEnumerable<TSource>, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt eine angegebene Anzahl zusammenhängender Elemente vom Anfang einer Sequenz zurück.
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)
Typparameter
- TSource
Der Typ der Elemente von source.
Parameter
- source
- IEnumerable<TSource>
Die Sequenz, aus der Elemente zurückgegeben werden sollen.
- count
- Int32
Die Anzahl der zurückzugebenden Elemente.
Gibt zurück
Ein Element IEnumerable<T> , das die angegebene Anzahl von Elementen vom Anfang der Eingabesequenz enthält.
Ausnahmen
source ist null.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Take Elemente vom Anfang einer Sequenz (nach der Sortierung) zurückgegeben werden.
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
Hinweise
Diese Methode wird mithilfe der verzögerten Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind. Die durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt aufgezählt wird, indem die GetEnumerator-Methode direkt oder mithilfe von foreach in C# oder For Each in Visual Basic aufgerufen wird.
Take Listet source Elemente auf und ergibt Elemente, bis count Elemente zurückgegeben wurden oder source keine weiteren Elemente enthalten sind. Wenn count die Anzahl der Elemente sourceüberschritten wird, werden alle Elemente source zurückgegeben.
Ist count der Wert kleiner oder gleich Null, source wird nicht aufgezählt, und es wird ein leerer IEnumerable<T> Wert zurückgegeben.
Die Take Und Skip Methoden sind funktionale Ergänzungen. Bei einer Auflistungssequenz coll und einer ganzen Zahl nwerden die Ergebnisse coll.Take(n) verkettet und coll.Skip(n) die gleiche Sequenz zurückgegeben wie coll.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Take-Klausel in einen Aufruf von Take.