Как сделать копию словаря и всех его элементов?
Пробовал делать копию вот так:
Class1 newClass1 = new Class1("first");
Dictionary<int, Class1> d1 = new Dictionary<int, Class1> { { 1, newClass1 } };
Dictionary<int, Class1> d2 = new Dictionary<int, Class1>(d1);
d2[1].x = "second";
Console.WriteLine(d1[1].x);
Где Class1:
class Class1
{
public string x;
public Class1(string x)
{
this.x = x;
}
}
В консоль выводиться second. Я хочу иметь копию, при изменении элементов который не менялись бы элементы исходного словаря.
Важно, что бы копия создавалась достаточно быстро: в словаре могут быть девятки тысяч элементов и нужно будет создавать до сотен копий, меньше чем за секунду.