Select(TSource, TResult) Methode (IEnumerable(TSource), Func(TSource, Int32, TResult))
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Enumerable.Select<TSource, TResult>-Methode (IEnumerable<TSource>, Func<TSource, Int32, TResult>)

 

Projiziert jedes Element einer Sequenz in ein neues Formular durch den Index des Elements integriert wird.

Namespace:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IEnumerable<TResult> Select<TSource, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, int, TResult> selector
)

Parameter

source
Type: System.Collections.Generic.IEnumerable<TSource>

Eine Sequenz von Werten, für die eine Transformationsfunktion aufgerufen werden soll.

selector
Type: System.Func<TSource, Int32, TResult>

Eine Transformationsfunktion, die auf jedes Quellelement angewendet werden soll. Der zweite Parameter der Funktion stellt den Index des Quellelements dar.

Rückgabewert

Type: System.Collections.Generic.IEnumerable<TResult>

Ein IEnumerable<T> dessen Elemente das Ergebnis des Aufrufs einer Transformationsfunktion für jedes Element der sind source.

Typparameter

TSource

Der Typ der Elemente von source.

TResult

Der Typ des von selector zurückgegebenen Werts.

Exception Condition
ArgumentNullException

source oder selector ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen gespeichert hat, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird nicht ausgeführt, bis das Objekt aufgelistet wird, entweder durch Aufrufen der GetEnumerator -Methode direkt oder mithilfe von foreach in Visual C# oder For Each in Visual Basic.

Das erste Argument für selector stellt das zu verarbeitende Element dar. Das zweite Argument für selector den nullbasierten Index des Elements in der Quellsequenz darstellt. Dies kann nützlich sein, wenn die Elemente in einer bekannten Reihenfolge angeordnet sind und Sie für ein Element an einem bestimmten Index z. B. etwas möchten. Es kann auch nützlich sein, wenn der Index ein oder mehrere Elemente abgerufen werden sollen.

Diese Projektionsmethode ist die Transformationsfunktion erforderlich selector, um einen Wert für jeden Wert in der Quellsequenz zu source. Wenn selector Gibt einen Wert, der selbst eine Auflistung ist, wird der Consumer die Untersequenzen manuell durchlaufen. In einer solchen Situation kann es besser für Ihre Abfrage zurückgeben soll eine einzelne zusammengefügte Sequenz von Werten sein. Um dies zu erreichen, verwenden Sie die SelectMany<TSource, TResult> Methode statt Select<TSource, TResult>. Obwohl SelectMany funktioniert ähnlich wie Select, im Unterschied zu die Transformationsfunktion eine Auflistung zurückgibt, die von erweitert wird SelectMany vor der Rückgabe.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, Int32, TResult>) um eine Sequenz von Werten projizieren und den Index jedes Elements verwenden.

string[] fruits = { "apple", "banana", "mango", "orange", 
                      "passionfruit", "grape" };

var query =
    fruits.Select((fruit, index) =>
                      new { index, str = fruit.Substring(0, index) });

foreach (var obj in query)
{
    Console.WriteLine("{0}", obj);
}

/*
 This code produces the following output:

 {index=0, str=}
 {index=1, str=b}
 {index=2, str=ma}
 {index=3, str=ora}
 {index=4, str=pass}
 {index=5, str=grape}
*/

Universal Windows Platform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portable Class Library
Unterstützt in: portable .NET platforms
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft