Conversões em LINQ

Os operadores alteram o tipo de objetos de entrada e são usados ​​em uma ampla variedade de aplicativos.

Operador Descrição Sintaxe de expressão de consulta C # Sintaxe de expressão de consulta VB
AsEnumerable Retorna a entrada digitada como IEnumerable <T> Não aplicável Não aplicável
AsQueryable Um IEnumerable (genérico) é convertido em um IQueryable (genérico) Não aplicável Não aplicável
Fundida Executa a conversão de elementos de uma coleção para um tipo especificado Use uma variável de intervalo digitada explicitamente. Ex: da string str em palavras De ... como ...
OfType Filtra os valores com base em seus, dependendo de sua capacidade de ser convertido para um tipo específico Não aplicável Não aplicável
ToArray Força a execução da consulta e faz a conversão de uma coleção em uma matriz Não aplicável Não aplicável
ToDictionary Com base em uma função de seletor de chave, defina elementos em um Dictionary <TKey, TValue> e força a execução de uma consulta LINQ Não aplicável Não aplicável
Listar Força a execução de uma consulta convertendo uma coleção em uma Lista <T> Não aplicável Não aplicável
Procurar Força a execução de uma consulta e coloca elementos em Lookup <TKey, TElement> com base em uma função de seletor de chave Não aplicável Não aplicável

Exemplo de elenco - expressão de consulta

C #

using System;
using System.Linq;

namespace Operators {
   class Cast {
      static void Main(string[] args) {
      
         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 (var e in query) {
            Console.WriteLine("Name = {0} , Trap Type = {1}", e.Name, e.TrapType);
         }

         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }

   class Plant {
      public string Name { get; set; }
   }

   class CarnivorousPlant : Plant {
      public string TrapType { get; set; }
   }
}

VB

Module Module1
   Sub Main()

      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 list = From cPlant As CarnivorousPlant In plants
                 Where cPlant.TrapType = "Snap Trap"
                 Select cPlant

      For Each e In list
         Console.WriteLine("Name = {0} , Trap Type = {1}", e.Name, e.TrapType)
      Next

      Console.WriteLine(vbLf & "Press any key to continue.")
      Console.ReadKey()
   End Sub

   Class Plant
      Public Property Name As String
   End Class

   Class CarnivorousPlant
      Inherits Plant
      Public Property TrapType As String
   End Class

End Module

Quando o código acima em C # ou VB é compilado e executado, ele produz o seguinte resultado -

Name = Venus Fly Trap, TrapType = Snap Trap
Name = Waterwheel Plant, TrapType = Snap Trap

Press any key to continue.