Convertir tipos de datos (C#)Converting Data Types (C#)

Los métodos de conversión cambian el tipo de los objetos de entrada.Conversion methods change the type of input objects.

Las operaciones de conversión en las consultas LINQ son útiles en una serie de aplicaciones.Conversion operations in LINQ queries are useful in a variety of applications. A continuación se muestran algunos ejemplos:Following are some examples:

MétodosMethods

En la siguiente tabla se muestran los métodos de operadores de consulta estándar que efectúan conversiones de tipo de datos.The following table lists the standard query operator methods that perform data-type conversions.

Los métodos de conversión de esta tabla cuyos nombres comienzan por "As" cambian el tipo estático de la colección de origen, pero no lo enumeran.The conversion methods in this table whose names start with "As" change the static type of the source collection but do not enumerate it. 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.The methods whose names start with "To" enumerate the source collection and put the items into the corresponding collection type.

Nombre del métodoMethod Name DescripciónDescription Sintaxis de la expresión de consulta de C#C# Query Expression Syntax Más informaciónMore Information
AsEnumerableAsEnumerable Devuelve la entrada con tipo como IEnumerable<T>.Returns the input typed as IEnumerable<T>. No es aplicable.Not applicable. Enumerable.AsEnumerable
AsQueryableAsQueryable Convierte un IEnumerable (genérico) en un IQueryable (genérico).Converts a (generic) IEnumerable to a (generic) IQueryable. No es aplicable.Not applicable. Queryable.AsQueryable
Conversión de tipos explícitaCast Convierte los elementos de una colección en un tipo especificado.Casts the elements of a collection to a specified type. Use una variable de rango con tipo explícito.Use an explicitly typed range variable. Por ejemplo:For example:

from string str in words
Enumerable.Cast

Queryable.Cast
OfTypeOfType Filtra valores en función de su capacidad para convertirse en un tipo especificado.Filters values, depending on their ability to be cast to a specified type. No es aplicable.Not applicable. Enumerable.OfType

Queryable.OfType
ToArrayToArray Convierte una colección en una matriz.Converts a collection to an array. Este método fuerza la ejecución de la consulta.This method forces query execution. No es aplicable.Not applicable. Enumerable.ToArray
ToDictionaryToDictionary Coloca elementos en Dictionary<TKey,TValue> basándose en una función de selector de claves.Puts elements into a Dictionary<TKey,TValue> based on a key selector function. Este método fuerza la ejecución de la consulta.This method forces query execution. No es aplicable.Not applicable. Enumerable.ToDictionary
ToListToList Convierte una colección en List<T>.Converts a collection to a List<T>. Este método fuerza la ejecución de la consulta.This method forces query execution. No es aplicable.Not applicable. Enumerable.ToList
ToLookupToLookup Coloca elementos en una Lookup<TKey,TElement> (un diccionario uno a varios) basándose en una función de selector de claves.Puts elements into a Lookup<TKey,TElement> (a one-to-many dictionary) based on a key selector function. Este método fuerza la ejecución de la consulta.This method forces query execution. No es aplicable.Not applicable. Enumerable.ToLookup

Ejemplo de sintaxis de expresiones de consultaQuery Expression Syntax Example

En el ejemplo de código siguiente se usa una variable de rango con tipo explícito para convertir un tipo en un subtipo antes de obtener acceso a un miembro que solo está disponible en el subtipo.The following code example uses an explicitly-typed range variable to cast a type to a subtype before accessing a member that is available only on the subtype.

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  
    */  
}  

Vea tambiénSee also