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.OfType<TResult>-Methode: (IEnumerable)

 

Veröffentlicht: Oktober 2016

Filtert die Elemente einer IEnumerable auf Grundlage eines angegebenen Typs.

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

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

Parameter

source
Type: System.Collections.IEnumerable

Die IEnumerable deren Elemente gefiltert.

Rückgabewert

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

Eine IEnumerable<T> die Elemente aus der Eingabesequenz vom Typ enthält TResult.

Typparameter

TResult

Der Typ, nach dem die Elemente der Sequenz gefiltert werden sollen.

Exception Condition
ArgumentNullException

source 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.

Die OfType<TResult>(IEnumerable) -Methode gibt nur die Elemente in source in den Typ umgewandelt werden kann TResult. Um stattdessen eine Ausnahme ausgelöst, wenn ein Element umgewandelt werden kann, um den Typ TResult, verwenden Sie Cast<TResult>(IEnumerable).

Diese Methode ist eine der wenigen Standardabfrageoperator-Methoden, die für eine Sammlung angewendet werden können, deren nicht parametrisierten Typ, z. B. ein ArrayList. Grund hierfür ist OfType<TResult> Erweitert den Typ IEnumerable. OfType<TResult> kann nur auf Sammlungen basierend angewendet werden auf den parametrisierten IEnumerable<T> -Typ, sondern Sammlungen basierend auf den nicht parametrisierten IEnumerable Geben Sie ebenfalls.

Durch Anwenden von OfType<TResult> zu einer Auflistung mit Implementierung IEnumerable, Sie erhalten die Möglichkeit, die die Auflistung mit den Standardabfrageoperatoren Abfragen. Z. B. Typargument angeben Object zu OfType<TResult> würde ein Objekt des Typs zurückgeben IEnumerable<Object> in c# oder IEnumerable(Of Object) in Visual Basic, auf denen die Standardabfrageoperatoren angewendet werden können.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie OfType<TResult> zum Filtern der Elemente von einer IEnumerable.

System.Collections.ArrayList fruits = new System.Collections.ArrayList(4);
fruits.Add("Mango");
fruits.Add("Orange");
fruits.Add("Apple");
fruits.Add(3.0);
fruits.Add("Banana");

// Apply OfType() to the ArrayList.
IEnumerable<string> query1 = fruits.OfType<string>();

Console.WriteLine("Elements of type 'string' are:");
foreach (string fruit in query1)
{
    Console.WriteLine(fruit);
}

// The following query shows that the standard query operators such as 
// Where() can be applied to the ArrayList type after calling OfType().
IEnumerable<string> query2 =
    fruits.OfType<string>().Where(fruit => fruit.ToLower().Contains("n"));

Console.WriteLine("\nThe following strings contain 'n':");
foreach (string fruit in query2)
{
    Console.WriteLine(fruit);
}

// This code produces the following output:
//
// Elements of type 'string' are:
// Mango
// Orange
// Apple
// Banana
//
// The following strings contain 'n':
// Mango
// Orange
// Banana

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
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: