gpt4 book ai didi

c# - 在 C# 中比较两个列表中的重复项

转载 作者:行者123 更新时间:2023-11-30 16:19:36 28 4
gpt4 key购买 nike

我有两个这样的列表:

List<EmpData> colExistingEmpData;
List<EmpData> colExternalEmpData;

他们每个人都将拥有具有相同 ID 的员工记录。我知道这听起来很奇怪,但这是我现在所处的真实情况!

对于基于 EmpId 的 colExternalEmpData 中的每个员工,对 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 中有重复项时,这意味着如果两名员工具有与 123 相同的“ID”,则上述代码仍会将 ID 为 123 的现有员工标记为更新,因为它会在 colExistingEmpData 中找到完全匹配,前提是 colExistingEmpData 只有一个记录那个 ID。

有没有一种方法可以在员工记录在任一来源中重复时将其标记为“忽略”?

我不能使用 Dictionary 对象,我以前用过它,但是当权者不喜欢这个主意。

问候。

最佳答案

考虑只在等式中添加一个处理过的列表:

List<int> processed = new List<int>();

然后在循环的顶部添加这段代码:

if (processed.Contains(employee.Id)) { continue; }
processed.Add(employee.Id);

因此您在检查其他列表之前执行此操作。这是您要做的第一件事,因为您并不关心它是否已被处理。

关于c# - 在 C# 中比较两个列表中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15111698/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com