2011-05-03 3 views
1

가능한 복제를 참조 형을 포함하는 사전을 복사하려면이
What is the best way to clone/deep copy a .NET generic Dictionary<string, T>?어떻게 C#에서 다른 사전에 값을

안녕! 내가 뭔가에 붙어 내가 정말 :( 도움이 그래서 사전 MyClass에 등등 속성, 메서드 및 일부 클래스는

Dictionary<string, MyClass> dict = new Dictionary<string, MyClass>(); 

에게이 필요 내가 예를 들어, 다른이 사전을 복사하려고합니다. :

Dictionary<string, MyClass> newDict = new Dictionary<string, MyClass>(dict); 

이 데이터를 참조로 복사 한 것 같다 그리고 내가 newDict의 모든 MyClass의 개체를 업데이트하려고하면, 데이터가 업데이트되고 딕셔너리에. 어떻게 내가 다른 하나 개의 사전을 복사 할 수 있습니다 내가하려고 할 때 복사본의 데이터를 업데이트하려면 원본의 데이터가 그대로 유지됩니까?

미리 감사드립니다 :) 좋은 하루 보내십시오 :)

답변

0

MyClass.Clone() 함수를 구현하여 인스턴스 복사본을 만들어야합니다. 그런 다음 소스 컬렉션의 모든 항목을 반복하고 대상 컬렉션에 복제본을 추가합니다.

+0

당신은'ICloneable'을 사용할 필요가 없습니다. 실제로 당신은 없이는 더 나을지도 모릅니다. – Timwi

+0

좋아, 인터페이스 요구 사항을 제거했습니다. – DanielB

관련 문제