【发布时间】:2017-02-08 01:49:13
【问题描述】:
我是 LINQ 新手,对如何在 LINQ 中编写 IF ELSE 有点困惑。
我创建的当前 LINQ 是:
lstRecord = (from a in lstPerson
select new GeneralCommonFunctions.MemberDetailSumary
{
AgeGroupId = a.AgeGroup_id!=null? a.AgeGroup_id.Value: 0,
AgeGroupText = a.Agegroup!=null?a.Agegroup.Description: "",
}).ToList();
现在我想从列表中获取出生日期并根据今天的日期计算当前年龄,然后将其分类到年龄组中(当前版本是直接从数据库中获取年龄组)。
可用的年龄组是:
低于 25(ID 为 1)
26-35(ID为2)
36-45(ID为3)
46-55(ID为4)
55 及以上(ID 为 5)
例如,如果成员 DOB 是 1990-01-15,则他属于年龄组 2。 如果成员 DOB 是 1970-12-20,他属于年龄组 4。
我被这个编码困住了:
lstRecord = (from a in lstPerson
select new GeneralCommonFunctions.MemberDetailSumary
{
Age = DateTimeUtility.GetCurrentAge(a.Dob),
//I dont know how to continue in this part, my idea is if the age is 0-25, the agegroup_id is 1, if the age is 30, the agegroup_id is 2.
}).ToList();
你们中的任何人都可以帮助我吗?谢谢!
更新:
我想在单击按钮时使用 LINQ 更新所有行。例如,如果用户点击了一个按钮,那么系统会检查每个人的出生日期,然后在数据库中更新他们的年龄组。
例如,如果 A 人 DOB 是 1990-01-01,他/她的年龄组将自动更新为 2,如果 B 人 DOB 是 1970-05-15,他/她的年龄组将自动更新为 4。
如何编写一个 linq 来更新数据库中的所有行? 感谢您的帮助!
【问题讨论】:
-
好吧,我不会尝试使用嵌套条件运算符编写所有逻辑。只需编写一个计算年龄的方法,检查它所在的波段并返回适当的 id。