Converter tipos de dados
Métodos de conversão alterar o tipo de objetos de entrada.
Operações de conversão em consultas LINQ são úteis em uma variedade de aplicativos.A seguir estão alguns exemplos:
The Enumerable.AsEnumerable<TSource> método pode ser usado para ocultar de implementação personalizada um tipo de um operador de consulta padrão.
The Enumerable.OfType<TResult> método pode ser usado para habilitar a coleções sem parâmetros para a consulta LINQ.
The Enumerable.ToArray<TSource>, Enumerable.ToDictionary, Enumerable.ToList<TSource>, e Enumerable.ToLookup métodos podem ser usados para forçar a execução da consulta imediatamente em vez de adiando-lo até que a consulta é 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.
sistema autônomo métodos de conversão nesta tabela cujos nomes começam com "sistema autônomo" alterar o tipo estático da coleção de fonte, mas não enumerar.Digite os métodos cujos nomes começam com "Para enumerar a coleção de fonte e coloque os itens na coleção correspondente".
Nome do método |
Descrição |
Sintaxe de expressão de consulta translation from VPE for Csharp |
Visual Basic Sintaxe de expressão de consulta |
Mais informações |
---|---|---|---|---|
AsEnumerable |
Retorna a entrada digitada sistema autônomo IEnumerable<T>. |
Não aplicável. |
Não aplicável. |
|
AsQueryable |
Converte um (genérico)IEnumerable a (genérico) IQueryable. |
Não aplicável. |
Não aplicável. |
|
Elenco |
Projeta os elementos de uma coleção para um tipo especificado. |
Use uma variável de intervalo explicitamente digitado.Por exemplo: from string str in words |
From … As … |
|
OfType |
Filtros de valores, dependendo de sua capacidade de ser convertido em um tipo especificado. |
Não aplicável. |
Não aplicável. |
|
ToArray |
Converte uma coleção em uma matriz.Esse método força a execução da consulta. |
Não aplicável. |
Não aplicável. |
|
ToDictionary |
Coloca os elementos em um Dictionary<TKey, TValue> baseado em uma função do seletor de chave. Esse método força a execução da consulta. |
Não aplicável. |
Não aplicável. |
|
ToList |
Converte uma coleção em um List<T>. Esse método força a execução da consulta. |
Não aplicável. |
Não aplicável. |
|
ToLookup |
Coloca os elementos em um Lookup<TKey, TElement> (um dicionário de um-para-muitos) com base em uma função do seletor de chave. Esse método força a execução da consulta. |
Não aplicável. |
Não aplicável. |
Exemplo da sintaxe de consulta expressão
O exemplo de código a seguir usa uma variável de intervalo explicitamente digitado na translation from VPE for Csharp ou o From As cláusula Visual Basic Para converter um tipo para um subtipo antes de acessar um membro que está disponível somente no subtipo.
Class Plant
Public Name As String
End Class
Class CarnivorousPlant
Inherits Plant
Public 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
class Plant
{
public string Name { get; set; }
}
class CarnivorousPlant : Plant
{
public string TrapType { get; set; }
}
static void Cast()
{
Plant[] plants = new Plant[] {
new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
};
var query = from CarnivorousPlant cPlant in plants
where cPlant.TrapType == "Snap Trap"
select cPlant;
foreach (Plant plant in query)
Console.WriteLine(plant.Name);
/* This code produces the following output:
Venus Fly Trap
Waterwheel Plant
*/
}
Mais informações sobre como converter tipos de dados
Consulte também
Conceitos
Visão geral de operadores de consulta padrão
Expressões de consulta LINQ (Guia de programação C#)