Esta documentación está archivada y no tiene mantenimiento.

Enumerable.Cast<TResult> (Método)

Actualización: noviembre 2007

Convierte los elementos de IEnumerable en el tipo especificado.

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

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

J# admite el uso de APIs genéricas pero no admite la declaración de nuevas API.
JScript no admite el uso de métodos ni tipos genéricos.

Parámetros de tipo

TResult

Tipo al que se convierten los elementos de source.

Parámetros

source
Tipo: System.Collections.IEnumerable
IEnumerable que contiene los elementos que se van a convertir.

Valor devuelto

Tipo: System.Collections.Generic.IEnumerable<TResult>
IEnumerable<T> que contiene cada elemento de la secuencia de origen convertido al tipo especificado.

Nota sobre el uso

En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IEnumerable. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Métodos de extensión (Visual Basic) o Métodos de extensión (Guía de programación de C#).

ExcepciónCondición
ArgumentNullException

source es null.

InvalidCastException

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

Este método se implementa usando 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 directamente a su método GetEnumerator o utilizando foreach en Visual C# o For Each en Visual Basic.

El método Cast<TResult>(IEnumerable) permite invocar los operadores de consulta estándar en colecciones no genéricas cuando se proporciona la información de tipo necesaria. Por ejemplo, ArrayList no implementa IEnumerable<T>, pero si se llama a Cast<TResult>(IEnumerable) en el objeto ArrayList, se pueden utilizar los operadores de consulta estándar 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 método OfType<TResult> en lugar de Cast<TResult>(IEnumerable).

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

from int i in objects

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

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

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

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

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



Windows Vista, Windows XP SP2, Windows Server 2003, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5

.NET Compact Framework

Compatible con: 3.5
Mostrar: