【发布时间】:2012-08-31 19:30:19
【问题描述】:
我对编程还很陌生,但我的任务是维护一些由以前的员工创建的应用程序。我有一个 ?: 声明,现在需要处理的不仅仅是真假声明,但我不知道如何去做。有问题的代码是:
MailDomainContext mail = new MailDomainContext();
mail.Load(mail.GetMailsQuery("Workforce Attendence Issue",
loadEmp.Entities.Where(emp => emp.EmployeeID == _EmployeeID).First().Username,
(loadEmp.Entities.Where(emp => emp.EmployeeID == _EmployeeID).First().EmployeeShiftID >= 2 ? "supervisor1" : "supervisor2"),
loadEmp.Entities.Where(emp => emp.EmployeeID == _EmployeeID).First().FirstName,
attendence.AttendenceDate.ToString("MM/dd/yyyy"),
attendence.TimeLost,
loadAbs.Entities.Where(abs => abs.AbsenceID == attendence.AbsenceID).First().AbsenceDescription,
(from inf in loadAtt.Entities
where inf.EmployeeID == _EmployeeID
where inf.AttendenceDate > DateTime.Now.AddDays(30 * -1)
where inf.Approved == false
select inf).Count() + 1,
attendence.UTOUsed
), null, null);
更具体地说,这一行:
(loadEmp.Entities.Where(emp => emp.EmployeeID == _EmployeeID).First().EmployeeShiftID >= 2 ? "supervisor1" : "supervisor2"),
我需要在列表中再添加 4 位主管,但我还没有想出一个不会让其他所有事情都不满意的方法。如果这是一个过于简单的问题,或者我遗漏了一些您可能需要知道的细节,我深表歉意,因为我说过我对这一切都很陌生。
【问题讨论】:
-
是否是sup1-sup6的标准是什么?
-
让您的代码更具可读性将是一个好的开始。我会将
loadEmp.Entities.Where(emp => emp.EmployeeID == _EmployeeID).First()放入一个变量中,而不是一遍又一遍地调用它。 -
主管取决于 ShiftID 是什么。
-
我认为这是一个人为了自己的利益而变得有点太聪明的例子,代码不应该看起来像这样。