我有一个表“StaffMembers”,其中的列表示一个月中工作的天数,模型中的属性如下:
public class StaffMember
{
public int Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public int Phone { get; set; }
public string Email { get; set; }
public string BirthDate { get; set; }
public int OctDays { get; set; }
public int NovDays { get; set; }
public int DecDays { get; set; }
public int JanDays { get; set; }
public int FebDays { get; set; }
public int MarDays { get; set; }
public int AprDays { get; set; }
}
现在我使用linq检索特定的staffMember:
var staffMember = (from b in db.StaffMembers
where b.Id == Id
select b).FirstOrDefault();
我想做的是循环staffMember中的months属性,并将所有工作日加在一起,以获得一年中的总工作日。例如,如果他在10月工作10天,在12月工作20天,在1月工作30天,我想用一种方法来迭代月份并对天数求和。
2条答案
按热度按时间x6yk4ghg1#
您可以通过迭代对象属性并对其应用条件来完成此操作。
这个代码段输出(5 + 7)=〉
12
b1zrtrql2#
您可以使用反射来迭代这些属性,但我不推荐这样做,因为无论如何您都必须指出要考虑哪些属性,这是因为您有多个整型属性,如Id和Phone,因此您无法在循环中指明要对整型属性求和,你必须明确地表明你想对OctDays等等求和,或者写一些算法来表明当前属性负责月份。(而且在我看来比反思更简单的办法)就只是把每个月的显式和总和弄得这样: