我有一个 lambda 表达式,其中需要分配一个局部变量以避免每个结果集调用我的 RetrieveAge(DatetimebirthDate) 两次。
我的 lambda 表达式如下所示:
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();
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现以下目标:
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();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何正确地做到这一点。任何提示或建议将不胜感激。
你快到了 - 你需要添加一个return
和一个分号:
var result = myList
.AsEnumerable()
.Where(f => {
var age = DateHelper.RetrieveAge(f.Birthdate);
return age >= 20 && age <= 40; // <<== Here
}).Select(x => new Person {
Name = x.Name, Id = x.Id, Alias = x.Alias }
).ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1756 次 |
最近记录: |