我有两个这样的列表:
List<EmpData> colExistingEmpData;
List<EmpData> colExternalEmpData;
他们每个人都将拥有具有相同 ID 的员工记录。我知道这听起来很奇怪,但这是我现在所处的真实情况!
对于 colExternalEmpData 中基于 EmpId 的每个员工,对 colExistingEmpData 进行检查
foreach (EmpData employee in colExternalEmpData)
{
var queryResult = colExistingEmpData.FindAll(thisEmployee => thisEmployee.Id == employee.Id);
if(querResult.count == 0)
{
// Mark as INSERT
}
else if(querResult.count == 1)
{
// Mark as UPDATE
}
else // queryResult is more than 1
{
// data is duplicated mark as IGNORE
}
analysedData.Add(employee);
当 colExistingEmpData 没有“Id”的重复值时,这可以正常工作
当 colExternalEmpData 中有重复项时,这意味着如果两个员工的“ID”与 123 相同,上述代码仍会将 id 为 123 的现有员工标记为更新,因为它在 colExistingEmpData 中找到了完全匹配,前提是 colExistingEmpData 只有一个具有该 ID 的记录。
当员工记录在任一来源中重复时,是否可以将其标记为“忽略”?
我不能使用 Dictionary 对象,我以前使用过它,但权力不喜欢这个想法。
问候。