这个系列是专门针对一些新司机上路不知道有哪些坑需要避免。那么这里友情提供具有价值的信息。让新司机提前知道前方有坑,及时避免。。可可。
这一期说一说 c# 中 字典的引用问题。
//栗子
Dictionary<int,string> testDic_1 = new Dictionary<int,string>{ {0,"a"} ,{1,"n"} ,{2,"d"} ,{3,"4"} };
Dictionary<int,string> testDic_2 = new Dictionary<int ,string>();
testDic_2 = testDic_1;
//以上testDic2 会完全等于 testDic_1;包括内存地址也会复制过来。也就是说当我对testDic_2进行操作时,testDic_1也会被改变。不向 list .当你new一个的时候会新开辟一个内存。
如果你只想要字典里的数据,并且只是一次性的使用。那么要怎么做才能避免掉这样情况。
IDictionary testDic_2 =newDictionary();
foreach(KeyValuePair kvp in testDic_1){ testDic_2.Add(kvp); }
//ok ..感觉这个方法就是弱智,一般情况是不会对字典进行2级引用的。没有必要。因为字典本身是无序的。他只是根据key去取值。