如何将字典的内容复制到另一本以清除原始字典

时间:2019-08-12 13:01:06

标签: c# dictionary

我想将字典的内容复制到另一个名为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,这两个实例又如何被删除?我不太了解这一点,可能是错误的,但是如果有人可以解释,那将是很好的。

谢谢!

1 个答案:

答案 0 :(得分:1)

我的测试代码显示origDicttempDict的浅表副本可以正常工作:

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