Compartir a través de


Conversión de tipos de datos (Visual Basic)

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

Las operaciones de conversión en consultas LINQ son útiles en una variedad de aplicaciones. Estos son algunos ejemplos:

Métodos

En la tabla siguiente se enumeran los métodos del operador de consulta estándar que realizan 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 comienzan 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 expresión de consulta de Visual Basic Más información
AsEnumerable Devuelve la entrada con tipo como IEnumerable<T>. No aplicable. Enumerable.AsEnumerable
AsQueryable Convierte un objeto (genérico) IEnumerable en un objeto (genérico). IQueryable No aplicable. Queryable.AsQueryable
Elenco Convierte los elementos de una colección en un tipo especificado. From … As … Enumerable.Cast

Queryable.Cast
OfType Filtra los valores, en función de su capacidad de ser convertidos a un tipo determinado. No aplicable. Enumerable.OfType

Queryable.OfType
ToArray Convierte una colección en una matriz. Este método fuerza la ejecución de la consulta. No 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 aplicable. Enumerable.ToDictionary
ToList Convierte una colección en List<T>. Este método fuerza la ejecución de la consulta. No 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 aplicable. Enumerable.ToLookup

Ejemplo de sintaxis de expresión de consulta

En el ejemplo de código siguiente se usa la From As cláusula para convertir un tipo en un subtipo antes de tener acceso 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