Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Enumerable.OfType<TResult> méthode (IEnumerable)

 

Date de publication : novembre 2016

Filtre les éléments d’un IEnumerable basé sur un type spécifié.

Espace de noms:   System.Linq
Assembly:  System.Core (dans System.Core.dll)

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

Paramètres

source
Type: System.Collections.IEnumerable

Les IEnumerable dont les éléments à filtrer.

Valeur de retour

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

Un IEnumerable<T> qui contient les éléments de la séquence d’entrée de type TResult.

Paramètres de type

TResult

Type en fonction duquel filtrer les éléments de la séquence.

Exception Condition
ArgumentNullException

source a la valeur null.

Cette méthode est implémentée à l’aide de l’exécution différée. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet est énumérée en appelant son GetEnumerator méthode directement ou à l’aide de foreach dans Visual C# ou For Each dans Visual Basic.

Le OfType<TResult>(IEnumerable) méthode retourne uniquement les éléments de source qui peut être casté en type TResult. Pour recevoir à la place une exception si un élément ne peut pas être converti en type TResult, utilisez Cast<TResult>(IEnumerable).

Cette méthode est une des rares méthodes d’opérateur de requête standard peuvent être appliquées à une collection qui possède un type non paramétrée, comme un ArrayList. C’est parce que OfType<TResult> étend le type IEnumerable. OfType<TResult> ne peut pas appliquer uniquement à des regroupements qui reposent sur paramétré IEnumerable<T> type, mais les regroupements qui reposent sur la non paramétrée IEnumerable type également.

En appliquant OfType<TResult> à une collection qui implémente IEnumerable, vous avez la possibilité d’interroger la collection à l’aide des opérateurs de requête standard. Par exemple, en spécifiant un argument de type Object pour OfType<TResult> retourne un objet de type IEnumerable<Object> en c# ou IEnumerable(Of Object) dans Visual Basic, dont les opérateurs de requête standard peuvent être appliquée.

L’exemple de code suivant montre comment utiliser OfType<TResult> pour filtrer les éléments d’un 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

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 3.5
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: