Uso de las funciones de comprensión de C# compiladores consulta, puede escribir código como:Código equivalente a la palabra clave 'dejar' en el método de extensión LINQ encadenado llama
var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" };
var result =
from animalName in names
let nameLength = animalName.Length
where nameLength > 3
orderby nameLength
select animalName;
En la expresión de consulta más arriba, la palabra clave let
permite un valor para pasar a las operaciones where y orderby sin llamadas duplicadas a animalName.Length
.
¿Cuál es el conjunto equivalente de llamadas al método de extensión LINQ que logra lo que la palabra clave "let" hace aquí?
FYI, la especificación C# 3.0 explica cada regla de traducción de comprensión de consulta en detalles insoportables. –
y para aquellos que encuentran que las especificaciones son complicadas, la C# en profundidad de Jon Skeet también lo cubre ;-p –
Me encanta cuando me pregunto "cómo se asocian los mapas de palabra clave' let' a los métodos de extensión ... Lo haré googlealo, pero dudo que mi búsqueda encuentre nada más que basura ... ¡ASÍ QUE! " – Will