2014-02-15 4 views
0

1 분마다 4 개의 사전 (추가, 제거됨, 업데이트 됨)이 있습니다. XML 파일을 다운로드 할 때 VALUE에 사전과 KEY 자체의 고유 ID를 넣습니다. 목록의 변경 내용을 추적하십시오 <XElement>

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

그래서이 경우에는 내가 키와 값의 전체 XML에서 노동자의 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를 가장 최신의 가장 큰 값으로 업데이트합니다.

이것은 시간 및 메모리 사용량에서 도트 넷을 사용할 때의 데이터 구조만큼 효율적입니다.

관련 문제