Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Enumerable.Cast<TResult>-Methode

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

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

public static IEnumerable<TResult> Cast<TResult>(
	this IEnumerable source
)

Typparameter

TResult

Der Typ, an den die Elemente von source übergeben werden sollen.

Parameter

source
Typ: System.Collections.IEnumerable
Das IEnumerable, das die in Typ TResult umzuwandelnden Elemente enthält.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<TResult>
Ein IEnumerable<T>, das jedes Element der Quellsequenz enthält, das in den angegebenen Typ umgewandelt wird.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).

AusnahmeBedingung
ArgumentNullException

source ist null.

InvalidCastException

Ein Element in der Sequenz kann nicht in den Typ TResult umgewandelt werden.

Diese Methode wird mit verzögerter Ausführung implementiert. Der Wert der sofortigen Rückgabe ist ein Objekt, in dem alle zum Ausführen der Aktion erforderlichen Informationen gespeichert werden. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch den direkten Aufruf der zugehörigen GetEnumerator-Methode oder mithilfe von foreach in Visual C# oder For Each in Visual Basic aufgelistet wird.

Mithilfe der Cast<TResult>(IEnumerable)-Methode können Standardabfrageoperatoren für nicht generische Auflistungen aufgerufen werden, indem die erforderlichen Typinformationen bereitgestellt werden. Beispielsweise implementiert ArrayList nicht IEnumerable<T>, doch kann die Sequenz mit den Standardabfrageoperatoren abgefragt werden, wenn zuvor für das ArrayList-Objekt Cast<TResult>(IEnumerable) aufgerufen wird.

Wenn ein Element nicht in den Typ TResult umgewandelt werden kann, löst diese Methode eine Ausnahme aus. Um nur die Elemente zu erhalten, die in den Typ TResult umgewandelt werden können, verwenden Sie anstelle von Cast<TResult>(IEnumerable) die OfType<TResult>-Methode.

In einem Abfrageausdruck wird eine explizit typisierte Iterationsvariable in den Aufruf von Cast<TResult>(IEnumerable) übersetzt. In diesem Beispiel wird die Syntax für eine explizit typisierte Bereichsvariable veranschaulicht.

from int i in objects

Im folgenden Codebeispiel wird veranschaulicht, wie Cast<TResult>(IEnumerable) verwendet wird, um die Verwendung der Standardabfrageoperatoren für eine ArrayList zu ermöglichen.


System.Collections.ArrayList fruits = new System.Collections.ArrayList();
fruits.Add("mango");
fruits.Add("apple");
fruits.Add("lemon");

IEnumerable<string> query =
    fruits.Cast<string>().OrderBy(fruit => fruit).Select(fruit => fruit);

// The following code, without the cast, doesn't compile.
//IEnumerable<string> query1 =
//    fruits.OrderBy(fruit => fruit).Select(fruit => fruit);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

// This code produces the following output: 
//
// apple 
// lemon
// mango


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft