次のようなXMLファイルがあります。
<Contacts>
<Person name="James" id"=1" />
<Person name="Edward" id"=2" />
</Contacts>
私は何かをしたいので、ID = 2の場合、さらに10人の個人を作成し、次のようにIDと名前を更新します。
if (person.ID == 2)
{
foreach (var item in duplicatePersons)
{
pers.SetAttributeValue("id", item.Key);
pers.SetAttributeValue("name", item.Value);
allPersons.Add(pers);
}
}
DuplicatePersonsは、すべての重複者を含む辞書です。
問題は、このforeachループの最初の反復で次のものが作成されることです。
<Person name="Josh" id"=3" />
2回目の反復後は、次のようになります。
<Person name="Josh" id"=3" />
<Person name="Jacob" id"=4" />
しかし、次のようになります。
<Person name="Jacob" id"=4" />
<Person name="Jacob" id"=4" />
したがって、2回目の反復では、最初の要素と2番目の要素の両方が更新されます。
なぜですか?