Compartilhar via


Convertendo tipos de dados (Visual Basic)

Os métodos de conversão alteram o tipo de objetos de entrada.

As operações de conversão em consultas LINQ são úteis em uma variedade de aplicativos. Estes são alguns exemplos:

Métodos

A tabela a seguir lista os métodos de operador de consulta padrão que executam conversões de tipo de dados.

Os métodos de conversão nesta tabela cujos nomes começam com "As" alteram o tipo estático da coleção de origem, mas não a enumeram. Os métodos cujos nomes começam com "Para" enumeram a coleção de origem e colocam os itens no tipo de coleção correspondente.

Nome do método Descrição Sintaxe da expressão de consulta do Visual Basic Mais informações
AsEnumerable Retorna a entrada digitada como IEnumerable<T>. Não aplicável. Enumerable.AsEnumerable
AsQueryable Converte um (genérico) IEnumerable em um (genérico) IQueryable. Não aplicável. Queryable.AsQueryable
Elenco Converte os elementos de uma coleção em um tipo especificado. From … As … Enumerable.Cast

Queryable.Cast
OfType Filtra valores, dependendo da capacidade de serem convertidos em um tipo especificado. Não aplicável. Enumerable.OfType

Queryable.OfType
ToArray Converte uma coleção em uma matriz. Esse método força a execução de consulta. Não aplicável. Enumerable.ToArray
ToDictionary Coloca os elementos em um Dictionary<TKey,TValue> com base em uma função de seletor de chave. Esse método força a execução de consulta. Não aplicável. Enumerable.ToDictionary
ToList Converte uma coleção em um List<T>. Esse método força a execução de consulta. Não aplicável. Enumerable.ToList
ToLookup Coloca os elementos em um Lookup<TKey,TElement> (um dicionário one-to-many) com base em uma função de seletor de chave. Esse método força a execução de consulta. Não aplicável. Enumerable.ToLookup

Sintaxe de expressão de consulta: exemplo

O exemplo de código a seguir usa a From As cláusula para converter um tipo em um subtipo antes de acessar um membro disponível apenas no 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 também