2014-02-15 18 views
0

我有4個字典(已添加,已刪除,已更新),每隔1分鐘我下載一個XML文件,並將一個唯一ID添加到字典的KEY和VALUE中的XML本身。在列表中跟蹤更改<XElement>

XML看起來像:

<Worker ID="1" Name="James Smith"> 
    <Details Key="" Value="" /> 
    <Details Key="" Value="" /> 
    <Details Key="" Value="" /> 
    <Details Key="" Value="" /> 
    <Details Key="" Value="" /> 
</Worker> 

因此,在這種情況下,我把工人的ID的密鑰和值的整個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

他們是字典集合,對吧?他們只能爲每個不同的密鑰保存一個值。

所以,你這樣做:

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

我不完全理解你的問題的「刪除」的一部分。但是很容易從字典中刪除一個值。

dict.Remove(workerId); 

如果特定的workerId鍵還沒有在字典中,這會放在那裏。如果是,它會將newXmlValue更新爲最新和最大的。

這是關於一個有效的數據結構,你可以得到與網絡,在時間和內存的使用。