Convertendo 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 para 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 "Como" alterar o tipo estático da coleção de origem, mas não enumerar. Os métodos cujos nomes começam com "Para" enumerar a coleção de origem e colocar os itens do tipo de coleção correspondente.

Nome do método

Descrição

C# Expressão de consulta sintaxe

Visual BasicSintaxe de expressão de consulta

Mais informações

AsEnumerable

Retorna a entrada digitada como IEnumerable<T>.

Não aplicável.

Não aplicável.

Enumerable.AsEnumerable<TSource>

AsQueryable

Converte (genérico) IEnumerable para (genérico) IQueryable.

Não aplicável.

Não aplicável.

Queryable.AsQueryable

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 …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

Filtros de valores, dependendo de sua capacidade de ser convertido em um tipo especificado.

Não aplicável.

Não aplicável.

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

ToArray

Converte uma coleção para uma matriz. Esse método força a execução da consulta.

Não aplicável.

Não aplicável.

Enumerable.ToArray<TSource>

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 da consulta.

Não aplicável.

Não aplicável.

Enumerable.ToDictionary

ToList

Converte uma coleção para um List<T>. Esse método força a execução da consulta.

Não aplicável.

Não aplicável.

Enumerable.ToList<TSource>

ToLookup

Coloca os elementos em um Lookup<TKey, TElement> (um dicionário de um-para-muitos) com base em uma função de seletor de chave. Esse método força a execução da consulta.

Não aplicável.

Não aplicável.

Enumerable.ToLookup

Exemplo de sintaxe de expressão de consulta

O exemplo de código a seguir usa uma variável de intervalo explicitamente digitado na C# ou From As cláusula Visual Basic para converter um tipo de 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
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
    */
}

Consulte também

Tarefas

Como: Consultar um ArrayList com LINQ

Referência

(referência de TRANSLATION FROM VPE FOR CSHARP) da cláusula FROM

A partir da cláusula (Visual Basic)

System.Linq

Conceitos

Visão geral operadores de consulta padrão

<>>Expressões de consulta do LINQ (guia de programação TRANSLATION FROM VPE FOR CSHARP)