私は次のような2つのリストを持っています:
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 に重複がある場合、つまり、2 人の従業員が 123 と同じ「ID」を持っている場合、上記のコードは、colExistingEmpData で完全に一致する ID を見つけるため、123 ID を持つ既存の従業員を更新としてマークします。
いずれかのソースで従業員レコードが繰り返されている場合に、従業員レコードを「IGNORE」としてマークする方法はありますか?
Dictionary オブジェクトを使用することはできません。以前に使用したことがありますが、その機能が気に入らなかったためです。
よろしく。