C# 将字典添加到字典列表
我的代码如下所示:C# 将字典添加到字典列表,c#,list,dictionary,add,C#,List,Dictionary,Add,我的代码如下所示: static void Main(string[] args) { List<Dictionary<string, string>> abc = new List<Dictionary<string, string>>(); Dictionary<string, string> xyz = new Dictionary<string, string>(); Dictionary&
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);
}
我正在创建字典列表。然后我把字典添加到这个列表中。但当添加时,我在字典上运行clear函数,然后它也从我的列表中删除。通常我的“abc”列表应该有xyz和klm字典及其值。但运行清除后,xyz值计数将为0。如何防止这种情况发生?这是因为xyz引用已添加到abc中。使用:
因为字典是引用类型。。。这意味着添加到列表中的对象和xyz引用的对象是同一个对象。清除其中一个对象时,它会影响指向同一对象的其他-2个引用
abc.Add(new Dictionary<string, string>(xyz));