添加词典到词典列表

Add Dictionary To Dictionary List

我有如下代码:

static void Main(string[] args)
{
    List<Dictionary<string, string>> abc = new List<Dictionary<string, string>>();

    Dictionary<string, string> xyz = new Dictionary<string, string>();
    Dictionary<string, string> klm = new Dictionary<string, string>();

    xyz.Add("xyz_1", "4");
    xyz.Add("xyz_2", "5");

    klm.Add("klm_1", "9");
    klm.Add("klm_2", "8");

    abc.Add(xyz);
    xyz.Clear();
    /*after this code xyz clear in my abc list. Why ?*/
    abc.Add(klm);
}

我正在创建词典列表。然后我将词典添加到此列表中。但是当添加时,我的词典上有 运行 清除功能,然后它也从我的列表中删除。通常我的 'abc' 列表应该有 xyz 和 klm 字典及其值。但是在 运行 clear() 之后 xyz 值计数将为 0。我怎样才能避免这种情况?

这是因为 xyz 引用添加到 abc。使用:

abc.Add(new Dictionary<string, string>(xyz));