跟踪List <xelement> </xelement>中的更改

时间:2014-02-15 18:31:23

标签: c# xml performance

我有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更改的最有效方法是什么?

1 个答案:

答案 0 :(得分:0)

他们是字典集,对吗?它们只能为每个不同的键保存一个值。

所以你这样做:

 if (dict.ContainsKey(workerId)) {
     dict[workerId] = newXmlValue;
 }
 else {
     dict.Add(workerId,newXmlValue);
 }

我不完全理解你问题的“删除”部分。但是从字典中删除值很容易。

dict.Remove(workerId);

如果特定的workerId键不在字典中,则会将其放在那里。如果是,它会将newXmlValue更新为最新且最好的。

这与数据结构的效率大致相同,无论是在时间和内存使用方面都可以得到。