我想将字典的内容复制到另一个名为tempDict的目录中,这样即使清除第一个字典即原始字典,我仍然可以使用原始字典的数据。两种字典的类型相同
我尝试了以下
Dictionary<string, Dictionary<int, List<dynamic>>> tempDict = new Dictionary<string, Dictionary<int, List<dynamic>>>(originalDict);
originalDict.Clear();
Dictionary<string, Dictionary<int, List<dynamic>>> tempDict = new Dictionary<string, Dictionary<int, List<dynamic>>>();
tempDict = originalDict;
originalDict.Clear();
但这似乎不起作用,但是对我来说,这两种方法都创建了一个字典的新实例,然后将实例值分配给originalDict,因为它是一个新实例,即使删除了originalDict,这两个实例又如何被删除?我不太了解这一点,可能是错误的,但是如果有人可以解释,那将是很好的。
谢谢!
答案 0 :(得分:1)
我的测试代码显示origDict
到tempDict
的浅表副本可以正常工作:
Console.WriteLine(origDict.Count); // outputs 1
var tempDict = new Dictionary<string, Dictionary<int, List<dynamic>>>(origDict);
Console.WriteLine(tempDict.Count); // outputs 1
origDict.Clear();
Console.WriteLine(origDict.Count); // outputs 0
Console.WriteLine(tempDict.Count); // outputs 1