Convertendo tipos de dados (Visual Basic)Converting Data Types (Visual Basic)

Os métodos de conversão alteram o tipo dos objetos de entrada.Conversion methods change the type of input objects.

As operações de conversão em consultas LINQ são úteis em diversas aplicações.Conversion operations in LINQ queries are useful in a variety of applications. Veja a seguir alguns exemplos:The following are some examples:

{1>Métodos<1}Methods

A tabela a seguir lista os métodos de operador de consulta padrão que realizam conversões de tipo de dados.The following table lists the standard query operator methods that perform data-type conversions.

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.The conversion methods in this table whose names start with "As" change the static type of the source collection but do not enumerate it. Os métodos cujos nomes começam com "To" enumeram a coleção de origem e colocam os itens na coleção de tipo correspondente.The methods whose names start with "To" enumerate the source collection and put the items into the corresponding collection type.

Nome do métodoMethod Name DescriçãoDescription Visual Basic sintaxe de expressão de consultaVisual Basic Query Expression Syntax Mais informaçõesMore Information
AsEnumerableAsEnumerable Retorna a entrada digitada como IEnumerable<T>.Returns the input typed as IEnumerable<T>. {1>Não aplicável.<1}Not applicable. Enumerable.AsEnumerable
AsQueryableAsQueryable Converte um IEnumerable (genérico) em um IQueryable (genérico).Converts a (generic) IEnumerable to a (generic) IQueryable. {1>Não aplicável.<1}Not applicable. Queryable.AsQueryable
ConversãoCast Converte os elementos de uma coleção em um tipo especificado.Casts the elements of a collection to a specified type. From … As … Enumerable.Cast

Queryable.Cast
OfTypeOfType Filtra valores, dependendo da capacidade de serem convertidos em um tipo especificado.Filters values, depending on their ability to be cast to a specified type. {1>Não aplicável.<1}Not applicable. Enumerable.OfType

Queryable.OfType
ToArrayToArray Converte uma coleção em uma matriz.Converts a collection to an array. Esse método força a execução de consulta.This method forces query execution. {1>Não aplicável.<1}Not applicable. Enumerable.ToArray
ToDictionaryToDictionary Coloca os elementos em um Dictionary<TKey,TValue> com base em uma função de seletor de chave.Puts elements into a Dictionary<TKey,TValue> based on a key selector function. Esse método força a execução de consulta.This method forces query execution. {1>Não aplicável.<1}Not applicable. Enumerable.ToDictionary
ToListToList Converte uma coleção em um List<T>.Converts a collection to a List<T>. Esse método força a execução de consulta.This method forces query execution. {1>Não aplicável.<1}Not applicable. Enumerable.ToList
ToLookupToLookup Coloca os elementos em um Lookup<TKey,TElement> (um dicionário one-to-many) com base em uma função de seletor de chave.Puts elements into a Lookup<TKey,TElement> (a one-to-many dictionary) based on a key selector function. Esse método força a execução de consulta.This method forces query execution. {1>Não aplicável.<1}Not applicable. Enumerable.ToLookup

Exemplo de sintaxe de expressão de consultaQuery Expression Syntax Example

O exemplo de código a seguir usa a cláusula From As para converter um tipo em um subtipo antes de acessar um membro que está disponível somente no subtipo.The following code example uses the From As clause to cast a type to a subtype before accessing a member that is available only on the subtype.

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émSee also