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.Cast<TResult>(IEnumerable)

 

Publicado: octubre de 2016

Convierte los elementos de un IEnumerable al tipo especificado.

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

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

Parámetros

source
Type: System.Collections.IEnumerable

El IEnumerable que contiene los elementos que se va a convertir al tipo TResult.

Valor devuelto

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

Un IEnumerable<T> que contiene cada elemento de la secuencia de origen que se convierte al tipo especificado.

Parámetros de tipo

TResult

El tipo para convertir los elementos de source a.

Exception Condition
ArgumentNullException

El valor de source es null.

InvalidCastException

Un elemento de la secuencia no se puede convertir al tipo TResult.

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 Cast<TResult>(IEnumerable) método permite que los operadores de consulta estándar que se invocará en colecciones no genéricas proporcionando la información de tipo necesaria. Por ejemplo, ArrayList no implementa IEnumerable<T>, pero mediante una llamada a Cast<TResult>(IEnumerable) en el ArrayList de objeto, los operadores de consulta estándar, a continuación, pueden utilizarse para consultar la secuencia.

Si un elemento no se puede convertir al tipo TResult, este método producirá una excepción. Para obtener únicamente los elementos que se pueden convertir al tipo TResult, utilice el OfType<TResult> método en lugar de Cast<TResult>(IEnumerable).

En una expresión de consulta, una variable de iteración con tipo explícito se convierte en una invocación de Cast<TResult>(IEnumerable). En este ejemplo se muestra la sintaxis para una variable de rango con tipo explícito.

from int i in objects

En el ejemplo de código siguiente se muestra cómo utilizar Cast<TResult>(IEnumerable) para habilitar el uso de los operadores de consulta estándar en un ArrayList.

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

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: