Используя функции компилятора С# для компиляции запросов, вы можете написать код, например:
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;
В выражении запроса выше ключевое слово let
позволяет передать значение в операции where и orderby без дублирования вызовов animalName.Length
.
Что такое эквивалентный набор вызовов метода расширения LINQ, который достигает того, что здесь делает ключевое слово "let"?