.NET 일반 사전
.NET 일반 사전을 복제하는 것은 사전을 보존하려는 경우 매우 중요합니다. 원본을 수정하지 않고 데이터를 수정합니다. 이 가이드에서는 사전
얕은 복제와 심층 복제
얕은 복사본은 다음을 참조하는 새 사전을 생성합니다. 원본 개체는 원본 사전에 저장되고 전체 복사본은 새 개체를 생성합니다. 이 경우 복사된 사전에 대한 변경 사항이 원본에 영향을 주지 않도록 깊은 복사본이 필요합니다.
LINQ 기반 솔루션
.NET 3.5 이상을 사용하는 경우 LINQ ToDictionary 메서드는 심층적인 작업에 대한 간단한 솔루션을 제공합니다. 복제:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => (T)entry.Value.Clone());
이 접근 방식은 복제된 키-값 쌍으로 새 사전을 생성합니다. 그러나 T가 ICloneable을 구현하지 않는 경우 간단한 값 할당을 사용할 수 있습니다.
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => entry.Value);
사용자 정의 복제 솔루션
또한 다음과 같은 사용자 정의 복제 방법을 구현할 수도 있습니다. 리플렉션을 사용하여 사전에 있는 모든 개체의 새 인스턴스를 만듭니다. T가 ICloneable을 구현하는 경우 다음 방법을 사용할 수 있습니다.
public static Dictionary<TKey, TValue> Clone<TKey, TValue>(Dictionary<TKey, TValue> original) { var clonedDictionary = new Dictionary<TKey, TValue>(); foreach (var entry in original) clonedDictionary.Add(entry.Key, (TValue)entry.Value.Clone()); return clonedDictionary; }
위 내용은 .NET 일반 사전을 어떻게 딥클론하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!