使用Linq获取列表中没有匹配项的项目

时间:2017-11-27 16:42:21

标签: c# linq

我有一份员工清单和一份employeeGroups列表。我正在尝试获取employeeGroups列表中没有匹配记录的员工列表。我尝试使用找到HERE的示例,但它不能满足我的需求,我无法弄清楚如何更改它以获得所需的列表。结果始终为NULL。

这是我的代码:

        List<ModuleView.EmployeeBO> employees = EmployeeBA.Employee_GetList_All(DB_Context, IsActiveChoice.Active, IsEnabledChoice.Enabled);
        List<PortalView.EmployeeGroupBO> groups = SecurityDA.EmployeeGroup_GetList_All(DB_Context);
        List<ModuleView.EmployeeBO> result = employees.Where(p2=> !groups.Any( p=>p.EmployeeId == p2.EmployeeId))  as List<ModuleView.EmployeeBO>;
        return result;

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你可以试试这个。 我没有机会测试代码。

List<ModuleView.EmployeeBO> employees = EmployeeBA.Employee_GetList_All(DB_Context, IsActiveChoice.Active, IsEnabledChoice.Enabled);
List<PortalView.EmployeeGroupBO> groups = SecurityDA.EmployeeGroup_GetList_All(DB_Context);
List<ModuleView.EmployeeBO> result = employees.Where(p2=> !groups.Any( p=>p.EmployeeId == p2.EmployeeId)).ToList();
return result;