Бывает при выполнении LINQ запросов требуются промежуточные преобразования с переменными запроса. Обычно это достигается с помощью LINQ оператора let.
Мощь этого оператора рассмотрим на следующем примере. Допустим у нас есть класс Employee вида:
1 | public class Employee |
Тогда запрос с промежуточными преобразованиями может выглядить так:
1 | var employeesWithAddress = |
В коде выше понятно использование промежуточного преобразования с помощью оператора let для fullAddress. Для salary же происходит преобразование из строкового типа в decimal, причём результат преобразования попадает в out переменную salary, а переменной _salaryOutOk можно пренебречь.
Всё это делает код чище и яснее, иначе преобразование для fullAddress пришлось бы выносить прямо в проекцию select, а конструкцию decimal.TryParse вообще бы не удалось вынести в проекцию, так что альтернативы let нет.
Let в LINQ - это сила!