Enumerable.Take<TSource>(IEnumerable<TSource>, Int32) Methode

Definition

Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem Anfang einer Sequenz zurückReturns a specified number of contiguous elements from the start of a sequence.

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.The type of the elements of source.

Parameter

source
IEnumerable<TSource>

Die Sequenz, aus der Elemente zurückgegeben werden sollen.The sequence to return elements from.

count
Int32

Die Anzahl der zurückzugebenden Elemente.The number of elements to return.

Gibt zurück

IEnumerable<TSource>

Ein IEnumerable<T>, das die angegebene Anzahl von Elementen ab dem Anfang der Eingabesequenz enthältAn IEnumerable<T> that contains the specified number of elements from the start of the input sequence.

Ausnahmen

source ist null.source is null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Take verwendet wird, um Elemente vom Anfang einer Sequenz zurückzugeben.The following code example demonstrates how to use Take to return elements from the start of a sequence.

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 von verzögerter Ausführung implementiert.This method is implemented by using deferred execution. Der unmittelbare Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind.The immediate return value is an object that stores all the information that is required to perform the action. Die durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt durch Aufrufen der GetEnumerator Methode direkt oder mithilfe foreach in der Visualisierung C# oder For Each in Visual Basic aufgezählt wird.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Take listet source auf und führt Elemente aus, bis count Elemente zurückgegeben wurden oder source keine weiteren Elemente enthält.Take enumerates source and yields elements until count elements have been yielded or source contains no more elements. Wenn count die Anzahl der Elemente in sourceüberschreitet, werden alle Elemente source zurückgegeben.If count exceeds the number of elements in source, all elements of source are returned.

Wenn count kleiner oder gleich 0 (null) ist, wird source nicht aufgezählt, und es wird ein leerer IEnumerable<T> zurückgegeben.If count is less than or equal to zero, source is not enumerated and an empty IEnumerable<T> is returned.

Die Methoden Take und Skip sind funktionale Ergänzungen.The Take and Skip methods are functional complements. Bei einer Sequenz coll und einer ganzzahligen nergibt die Verkettung der Ergebnisse von coll.Take(n) und coll.Skip(n) dieselbe Sequenz wie coll.Given a sequence coll and an integer n, concatenating the results of coll.Take(n) and coll.Skip(n) yields the same sequence as coll.

In Visual Basic Abfrage Ausdruckssyntax wird eine Take-Klausel in einen Aufruf von Takeübersetzt.In Visual Basic query expression syntax, a Take clause translates to an invocation of Take.

Gilt für:

Siehe auch