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 aplicações. Seguem-se alguns exemplos:
O Enumerable.AsEnumerable método pode ser usado para ocultar a implementação personalizada de um tipo de um operador de consulta padrão.
O Enumerable.OfType método pode ser usado para habilitar coleções não parametrizadas para consultas LINQ.
Os Enumerable.ToArraymétodos , Enumerable.ToDictionary, Enumerable.ToList, e podem Enumerable.ToLookup ser usados para forçar a execução imediata da consulta em vez de adiá-la até que a consulta seja enumerada.
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 | Description | 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 a (genérico) IEnumerable em um (genérico) IQueryable. | Não aplicável. | Queryable.AsQueryable |
Cost | Converte os elementos de uma coleção para um tipo especificado. | From … As … |
Enumerable.Cast Queryable.Cast |
OfType | Filtra valores, dependendo de sua capacidade de ser convertido para 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 da consulta. | Não aplicável. | Enumerable.ToArray |
ToDictionary | Coloca elementos em uma Dictionary<TKey,TValue> função de seletor de chave com base. Esse método força a execução da consulta. | Não aplicável. | Enumerable.ToDictionary |
Lista de Tarefas | Converte uma coleção em um List<T>arquivo . Esse método força a execução da consulta. | Não aplicável. | Enumerable.ToList |
ToLookup | Coloca elementos em um Lookup<TKey,TElement> (um dicionário um-para-muitos) com base em uma função seletora de teclas. Esse método força a execução da consulta. | Não aplicável. | Enumerable.ToLookup |
Exemplo de sintaxe de expressão de consulta
O exemplo de código a seguir usa a From As
cláusula para converter um tipo para um subtipo antes de acessar um membro que está disponível somente 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