Conversión de tipos de datos (Visual Basic)

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 una serie de aplicaciones. A continuación se muestran algunos ejemplos.

Métodos

En la siguiente tabla se muestran los métodos de operadores de consulta estándar que efectúan conversiones de tipo de datos.

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. 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 Descripción Sintaxis de expresiones de consulta de Visual Basic Más información
AsEnumerable Devuelve la entrada con tipo como IEnumerable<T>. No es aplicable. Enumerable.AsEnumerable
AsQueryable Convierte un IEnumerable (genérico) en un IQueryable (genérico). No es aplicable. Queryable.AsQueryable
Conversión de tipos explícita Convierte los elementos de una colección en un tipo especificado. From … As … Enumerable.Cast

Queryable.Cast
OfType Filtra valores en función de su capacidad para convertirse en un tipo especificado. No es aplicable. Enumerable.OfType

Queryable.OfType
ToArray Convierte una colección en una matriz. Este método fuerza la ejecución de la consulta. No es aplicable. Enumerable.ToArray
ToDictionary Coloca elementos en Dictionary<TKey,TValue> basándose en una función de selector de claves. Este método fuerza la ejecución de la consulta. No es aplicable. Enumerable.ToDictionary
ToList Convierte una colección en List<T>. Este método fuerza la ejecución de la consulta. No es aplicable. Enumerable.ToList
ToLookup Coloca elementos en una Lookup<TKey,TElement> (un diccionario uno a varios) basándose en una función de selector de claves. Este método fuerza la ejecución de la consulta. No es aplicable. Enumerable.ToLookup

Ejemplo de sintaxis de expresiones de consulta

En el ejemplo de código siguiente se usa una cláusula From As para convertir un tipo en un subtipo antes de acceder a un miembro que solo está disponible en el subtipo.

Class Plant
    Public Property Name As String
End Class

Class CarnivorousPlant
    Inherits Plant
    Public Property TrapType As String
End Class

Sub Cast()

    Dim plants() As Plant = {
        New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"},
        New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"},
        New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"},
        New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}

    Dim query = From plant As CarnivorousPlant In plants
                Where plant.TrapType = "Snap Trap"
                Select plant

    Dim sb As New System.Text.StringBuilder()
    For Each plant In query
        sb.AppendLine(plant.Name)
    Next

    ' Display the results.
    MsgBox(sb.ToString())

    ' This code produces the following output:

    ' Venus Fly Trap
    ' Waterwheel Plant

End Sub

Consulte también