Как скопировать содержимое словаря в новый словарь в C #? - PullRequest
19 голосов
/ 11 мая 2011

Как я могу скопировать Dictionary<string, string> в другой new Dictionary<string, string>, чтобы они не были одним и тем же объектом?

Ответы [ 2 ]

60 голосов
/ 11 мая 2011

Предполагая, что вы хотите, чтобы они были отдельными объектами, а не ссылками на один и тот же объект:

Dictionary<string, string> d = new Dictionary<string, string>();
Dictionary<string, string> d2 = new Dictionary<string, string>(d);

", чтобы они не были одним и тем же объектом."

Изобилие неоднозначности- если вы действительно хотите, чтобы они были ссылками на один и тот же объект:

Dictionary<string, string> d = new Dictionary<string, string>();
Dictionary<string, string> d2 = d;

(изменение d или d2 после того, как вышеизложенное повлияет на оба)

7 голосов
/ 11 мая 2011
using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        Dictionary<string, string> first = new Dictionary<string, string>()
        {
            {"1", "One"},
            {"2", "Two"},
            {"3", "Three"},
            {"4", "Four"},
            {"5", "Five"},
            {"6", "Six"},
            {"7", "Seven"},
            {"8", "Eight"},
            {"9", "Nine"},
            {"0", "Zero"}
        };

        Dictionary<string, string> second = new Dictionary<string, string>();
        foreach (string key in first.Keys)
        {
            second.Add(key, first[key]);
        }

        first["1"] = "newone";
        Console.WriteLine(second["1"]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...