Conversiones en LINQ

Los operadores cambian el tipo de objetos de entrada y se utilizan en una amplia gama de aplicaciones.

Operador Descripción Sintaxis de expresión de consulta de C # Sintaxis de expresión de consulta de VB
AsEnumerable Devuelve la entrada escrita como IEnumerable <T> No aplica No aplica
AsQueryable Un IEnumerable (genérico) se convierte en un IQueryable (genérico) No aplica No aplica
Emitir Realiza la conversión de elementos de una colección a un tipo específico Utilice una variable de rango escrita explícitamente. Por ejemplo: de la cadena str en palabras De ... Como ...
OfType Filtra los valores en función de su, según su capacidad para convertirse en un tipo particular No aplica No aplica
ToArray Fuerza la ejecución de la consulta y convierte una colección en una matriz No aplica No aplica
ToDictionary Sobre la base de una función de selector de teclas, establezca elementos en un Dictionary <TKey, TValue> y fuerce la ejecución de una consulta LINQ No aplica No aplica
Listar Fuerza la ejecución de una consulta convirtiendo una colección en List <T> No aplica No aplica
Para buscar Fuerza la ejecución de una consulta y coloca elementos en una búsqueda <TKey, TElement> sobre la base de una función de selector de teclas No aplica No aplica

Ejemplo de conversión: expresión 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

Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:

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

Press any key to continue.