У меня есть выражение лямбда, в котором необходимо назначить локальную переменную, чтобы избежать вызова моего RetrieveAge (Datetime birthDate) два раза за каждый набор результатов.Назначение локальной переменной в выражении лямбда
Мой лямбда-выражение выглядит следующим образом:
result = myList.AsEnumerable().Where(f => DateHelper.RetrieveAge(f.Birthdate) >= 20 && DateHelper.RetrieveAge(f.Birthdate) <= 40).Select(x => new Person { Name = x.Name, Id = x.Id, Alias = x.Alias }).ToList();
Я пытаюсь добиться чего-то вроде следующего:
var result = myList.AsEnumerable().Where(f => { var age = DateHelper.RetrieveAge(f.Birthdate); age >= 20 && age <= 40 }).Select(x => new Person { Name = x.Name, Id = x.Id, Alias = x.Alias }).ToList();
Но я не могу понять, как сделать это правильно. Любые намеки или предложения будут в основном оценены.
возможно дубликат [C#: Можно ли объявить локальную переменную в анонимный метод?] (http://stackoverflow.com/questions/369334/c-is-it-possible-to-declare-a-local-variable-in-an-anonymous-method) – oefe