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.