Enumerable.Take Methode

Definition

Überlädt

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

Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem Anfang einer Sequenz zurück

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

Gibt einen angegebenen Bereich von zusammenhängenden Elementen aus einer Sequenz zurück.

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

Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem 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

IEnumerable<TSource>

Ein IEnumerable<T>, das die angegebene Anzahl von Elementen ab dem Anfang der Eingabesequenz enthält

Ausnahmen

source ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie verwenden Take , um Elemente vom Anfang einer Sequenz zurückzugeben.

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 von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator -Methode oder mithilfe foreach von in C# oder For Each in Visual Basic aufgezählt wird.

Take Listet source Elemente auf und ergibt diese, bis count Elemente zurückgegeben wurden oder source keine weiteren Elemente enthalten. Wenn count die Anzahl der Elemente in sourceüberschreitet, werden alle Elemente von source zurückgegeben.

Wenn count kleiner als oder gleich 0 ist, source wird nicht aufgezählt, und es wird ein leerer IEnumerable<T> Wert zurückgegeben.

Die Take Methoden und Skip sind funktionale Ergänzungen. Bei einer Auflistungssequenz coll und einer ganzen Zahl nergibt die Verkettung der Ergebnisse von coll.Take(n) und coll.Skip(n) dieselbe Sequenz wie coll.

In der Visual Basic-Abfrageausdruckssyntax wird eine Take -Klausel in einen Aufruf von Takeübersetzt.

Weitere Informationen

Gilt für:

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

Gibt einen angegebenen Bereich von zusammenhängenden Elementen aus 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, 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)

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Die Sequenz, aus der Elemente zurückgegeben werden sollen.

range
Range

Der Bereich der zurückzugebenden Elemente, der start- und end-Indizes entweder am Anfang oder am Ende der Sequenz aufweist.

Gibt zurück

IEnumerable<TSource>

Ein IEnumerable<T> , das den angegebenen Bereich von Elementen aus der source Sequenz enthält.

Ausnahmen

source ist null.

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 von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator -Methode oder mithilfe foreach von in C# oder For Each in Visual Basic aufgezählt wird.

Take listet source Elemente auf und ergibt diese, deren Indizes zum angegebenen rangegehören.

Gilt für: