Как сделать копию словаря и всех его элементов?

Пробовал делать копию вот так:

    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. Я хочу иметь копию, при изменении элементов который не менялись бы элементы исходного словаря.

Важно, что бы копия создавалась достаточно быстро: в словаре могут быть девятки тысяч элементов и нужно будет создавать до сотен копий, меньше чем за секунду.


Ответы (0 шт):