2D字典阵列-复制
本文关键字:复制 阵列 字典 2D | 更新日期: 2023-09-27 18:30:10
让我们告诉我们我有2D字典阵列:
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;
但当我更改第一个时,它会自动更改第二个
我真的不知道该怎么做。
我想你想要一个深度复制?
var matNew = new Dictionary<int, string>[mat.GetLength(0), mat.GetLength(1)];
for (int i = 0; i < mat.GetLength(0); ++i)
for (int j = 0; j < mat.GetLength(1); ++j)
matNew[i, j] = new Dictionary<int, string>(mat[i, j]);
Dictionary(IDictionary<TKey, TValue>)
构造函数复制指定字典中的所有元素,这可能是执行现有字典的浅层克隆的最快方法。这适用于您的情况,因为键和值都是不可变的(int
和string
)。