我有4个词典(添加,删除,更新),每1分钟我下载一个XML文件,我将一个唯一的ID放在字典的KEY和XML本身的VALUE中。
XML看起来像:
<Worker ID="1" Name="James Smith">
<Details Key="" Value="" />
<Details Key="" Value="" />
<Details Key="" Value="" />
<Details Key="" Value="" />
<Details Key="" Value="" />
</Worker>
所以在这种情况下,我将Worker的ID放在KEY中,将整个XML放在值中。
逻辑应该是:
* if ID doesn't exist, it should be inserted to Added.
* if ID exists and was changed it should be added to Updated.
* if ID was removed, it should be added to Removed.
每次运行时,字典都应该自行重置,因此我只获得最后一次运行更改。
我想知道以最快的方式跟踪XML更改的最有效方法是什么?
答案 0 :(得分:0)
他们是字典集,对吗?它们只能为每个不同的键保存一个值。
所以你这样做:
if (dict.ContainsKey(workerId)) {
dict[workerId] = newXmlValue;
}
else {
dict.Add(workerId,newXmlValue);
}
我不完全理解你问题的“删除”部分。但是从字典中删除值很容易。
dict.Remove(workerId);
如果特定的workerId键不在字典中,则会将其放在那里。如果是,它会将newXmlValue更新为最新且最好的。
这与数据结构的效率大致相同,无论是在时间和内存使用方面都可以得到。