Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Enumerable.OfType<TResult>(IEnumerable)

 

Publicado: octubre de 2016

Filtra los elementos de un IEnumerable basado en un tipo especificado.

Espacio de nombres:   System.Linq
Ensamblado:  System.Core (en System.Core.dll)

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

Parámetros

source
Type: System.Collections.IEnumerable

El IEnumerable cuyos elementos para filtrar.

Valor devuelto

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

Un IEnumerable<T> que contiene los elementos de la secuencia de entrada de tipo TResult.

Parámetros de tipo

TResult

El tipo según el cual se van a filtrar los elementos de la secuencia.

Exception Condition
ArgumentNullException

El valor de source es null.

Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que se enumera el objeto llamando a su GetEnumerator método directamente o mediante foreach en Visual C# o For Each en Visual Basic.

El OfType<TResult>(IEnumerable) método devuelve sólo los elementos de source que se puede convertir al tipo TResult. Para recibir en su lugar una excepción si un elemento no se puede convertir al tipo TResult, utilice Cast<TResult>(IEnumerable).

Este método es uno de los pocos métodos de operador de consulta estándar que se pueden aplicar a una colección que tiene un tipo sin parámetros, como un ArrayList. Esto es porque OfType<TResult> extiende el tipo IEnumerable. OfType<TResult> no se puede aplicar sólo a las colecciones que se basan en parametrizado IEnumerable<T> tipo, pero las colecciones que se basan en el sin parámetros IEnumerable Escriba también.

Aplicando OfType<TResult> a una colección que implementa IEnumerable, ofrece la posibilidad de consultar la colección mediante los operadores de consulta estándar. Por ejemplo, al especificar un argumento de tipo de Object a OfType<TResult> devolvería un objeto de tipo IEnumerable<Object> en C# o IEnumerable(Of Object) en Visual Basic, para que se pueden aplicar los operadores de consulta estándar.

En el ejemplo de código siguiente se muestra cómo utilizar OfType<TResult> para filtrar los elementos de 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

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 3.5
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: