我試圖將兩個列表組合在一起,以便列表中沒有重複項。我要做的第一件事就是抓住所有可以批准的用戶。將單個列表項添加到另一個列表
var allUsers = _dbContext.UserRoleClientEmployeeAssignments.Where(urcea => urcea.CompanyID == employee.CompanyID && urcea.ClientID == employee.ClientID && urcea.Users.Enabled).ToList();
var allApproveUsers = allUsers.Where(urcea => urcea.ApproveAllPTO).ToList();
然後,我讓我的所有部門的用戶誰可以批准
var deptSecurityUsers = _dbContext.UserDeptDivSecurities.Where(udds => udds.CompanyID == employee.CompanyID && udds.ClientID == employee.ClientID && udds.Department == dept && udds.ApprovePTO).ToList();
var deptApproveUsers = allUsers.Where(au => deptSecurityUsers.Any(ds => ds.UserID == au.UserID)).ToList();
之後,我經歷了列表,如果它不存在allApproveUsers
我嘗試添加它。
object concatUsers = null;
// check for existing user
foreach (var deptUser in deptApproveUsers)
{
var exists = allApproveUsers.FirstOrDefault(e => e.UserID == deptUser.UserID);
if (exists == null)
{
concatUsers = allApproveUsers.Concat(new[] {deptUser}).ToList();
}
}
return (List<UserRoleClientEmployeeAssignment>) concatUsers;
我在allApproveUsers
9個項目,我經歷了35個左右deptApproveUsers
後我只有10個項目在列表中無論有15項應增加的。我哪裏錯了?