在问这个问题之前,我尝试在用户414076给出的StackOverflow上实现这个公认的答案,但不幸的是我不能......
所以我想问我哪里错了..我应该如何继续有效的“目标”..
在我的 winforms .Net4 项目中
我有两个类:Employee 和 Mods .. 以及 Employee 的一个子类:RM
Mods 类携带的数据类似于政府的“工作许可”规则 ,即如果员工是机械工程师,那么应该在其中一个机械实验室工作,应该有最低工资。每小时“x”美元,-如果成功完成研究-应该将 %1 的研究收益作为成功奖,等等。..
具有许多属性的员工类,并携带员工的所有数据, 即 姓名、 家庭地址、 电话 列表 、年假列表、医院疾病论文 列表、Should_Attend_Seminars 列表、AcceptedWorkingRules 列表 等。..
RM 子类包含员工的详细信息,因为它是工作规则, 即 WorkingType - 是每小时或每周或每月的薪水,是否有额外的佣金等 - ,WorkingHours, PermittanceID - 作为对 Mods 类 ID 值的引用 - 等。 ..
我的目标是从所有员工的静态列表中选择员工作为单独的列表(如果单独的列表不可能,则在列表中分组)其中员工的 RM.PermittanceID 相同
即 RmPermittanceIdList_1 包含工作类型为 (3,6,9,12) 且许可 ID 为 1 的员工
RmPerMittanceIdList_2 包含有工作类型的员工(3,6,9,129,许可 ID 为 2 ....继续
{我需要这些列表以备后用}
我尝试并采取的错误{当前上下文中不存在名称“em”}:
List<Employees> emps = from md in Program.modList
from em in Program.empList
from emo in em.RmList
where emo.EndDate > DateTime.Today
&& (emo.Worktype == 3 || emo.WorkType == 6
|| emo.WorkType == 9 || emo.WorkType == 12)
group o by emo.PermittanceID == md.ModId
into rm
select new { id = em.ID, r = rm.ToList() };
提前致谢..