Convertir tipos de datos

Actualización: noviembre 2007

Los métodos de conversión cambian el tipo de los objetos de entrada.

Las operaciones de conversión en las consultas LINQ son útiles en varios sentidos. A continuación se ofrecen algunos ejemplos:

En la tabla siguiente se enumeran los métodos de operador de consulta estándar que realizan conversiones de tipos de datos.

Los métodos de conversión de esta tabla cuyo nombre comienza por "As" cambian el tipo estático de la colección de origen pero no lo enumeran. Los métodos cuyos nombres empiezan por "To" enumeran la colección de origen y colocan los elementos en el tipo de colección correspondiente.

Nombre del método

Description

Sintaxis de las expresiones de consulta de C#

Sintaxis de las expresiones de consulta de Visual Basic

Más información

AsEnumerable

Devuelve la entrada tipificada como IEnumerable<T>.

No es aplicable

No es aplicable

Enumerable.AsEnumerable<TSource>

AsQueryable

Convierte una interfaz IEnumerable (genérica) en una interfaz IQueryable (genérica).

No es aplicable

No es aplicable

Queryable.AsQueryable

Conversión de tipos explícita

Convierte los elementos de una colección a un tipo especificado.

Utilice una variable de rango con tipo explícito. Por ejemplo:

from string str in words

From … As …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

Filtra valores en función de si pueden o no convertirse a un tipo especificado.

No es aplicable

No es aplicable

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

ToArray

Convierte una colección en una matriz. Este método fuerza la ejecución de la consulta.

No es aplicable

No es aplicable

Enumerable.ToArray<TSource>

ToDictionary

Coloca los elementos en Dictionary<TKey, TValue> según una función del selector de claves. Este método fuerza la ejecución de la consulta.

No es aplicable

No es aplicable

Enumerable.ToDictionary

ToList

Convierte una colección a List<T>. Este método fuerza la ejecución de la consulta.

No es aplicable

No es aplicable

Enumerable.ToList<TSource>

ToLookup

Coloca los elementos en un objeto Lookup<TKey, TElement> (diccionario uno a varios) según una función del selector de claves. Este método fuerza la ejecución de la consulta.

No es aplicable

No es aplicable

Enumerable.ToLookup

En el ejemplo de código siguiente se utiliza una variable de rango con tipo explícito en C# o la cláusula From As en Visual Basic para convertir un tipo a un subtipo antes de tener acceso a un miembro que sólo está disponible en el subtipo.

class Plant
{
    public string Name { get; set; }
}

class CarnivorousPlant : Plant
{
    public string TrapType { get; set; }
}

static void Cast()
{
    Plant[] plants = new Plant[] {
        new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
        new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
        new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
        new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
    };

    var query = from CarnivorousPlant cPlant in plants
                where cPlant.TrapType == "Snap Trap"
                select cPlant;

    foreach (Plant plant in query)
        Console.WriteLine(plant.Name);

    /* This code produces the following output:

        Venus Fly Trap
        Waterwheel Plant
    */
}


Adiciones de comunidad

Mostrar: