【发布时间】:2014-02-16 04:05:36
【问题描述】:
我有一个如下所示的 XML 文件:
<Contacts>
<Person name="James" id"=1" />
<Person name="Edward" id"=2" />
</Contacts>
我想做点什么,所以如果 ID=2,再创建 10 个 Person 并更新他们的 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" />
第二次迭代后,应该是这样的:
<Person name="Josh" id"=3" />
<Person name="Jacob" id"=4" />
但它看起来像:
<Person name="Jacob" id"=4" />
<Person name="Jacob" id"=4" />
所以第二次迭代更新了第一个和第二个元素。
知道为什么吗?
【问题讨论】:
标签: c# xml linq linq-to-xml