【发布时间】:2012-04-06 17:48:25
【问题描述】:
让我们告诉我有一个二维字典数组:
public Dictionary<int, string>[,] mat = new Dictionary<int, string>[3, 5]
{
{ new Dictionary<int, string>(), new Dictionary<int, string>(), new Dictionary<int, string>() },
{ new Dictionary<int, string>(), new Dictionary<int, string>(), new Dictionary<int, string>() },
{ new Dictionary<int, string>(), new Dictionary<int, string>(), new Dictionary<int, string>() },
{ new Dictionary<int, string>(), new Dictionary<int, string>(), new Dictionary<int, string>() },
{ new Dictionary<int, string>(), new Dictionary<int, string>(), new Dictionary<int, string>() }
}
我需要复制这个到另一个。我尝试了所有方法。
比如:
matNew = mat;
但是当我更改第一个时,它仍然会自动更改第二个。
我真的不知道该怎么做。
【问题讨论】:
-
一个改变,另一个改变,所以你是说你想要一个深拷贝?
-
数组是引用类型; “mat”只是对实例的引用,“matNew = mat”复制引用,而不是实际的数组。您是要创建数组的副本,还是创建数组的副本以及其中的所有字典?
-
我假设尺寸应该是
[5, 3],而不是[3, 5]。
标签: c# arrays dictionary copy