Позволяет сказать, у меня есть 2D массив словарей: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;
Но до сих пор, когда я изменить первый, она автоматически изменяет второй.
Я действительно не знаю, как это сделать.
Один меняется, и так далее, так что вы говорите, что хотите получить глубокую копию вместо этого? – payo
@payo - Да, точно. –
Array - ссылочный тип; «mat» - это просто ссылка на экземпляр, а «matNew = mat» копирует ссылку, а не фактический массив. Вы пытаетесь создать копию массива или копию массива И все словари в нем? –