這個系列是專門針對一些新司機上路不知道有哪些坑需要避免。那么這里友情提供具有價值的信息舔哪。讓新司機提前知道前方有坑,及時避免槽棍。捉蚤。可可炼七。
這一期說一說 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;包括內(nèi)存地址也會復(fù)制過來。也就是說當(dāng)我對testDic_2進行操作時豌拙,testDic_1也會被改變陕悬。不向 list .當(dāng)你new一個的時候會新開辟一個內(nèi)存。
如果你只想要字典里的數(shù)據(jù)按傅,并且只是一次性的使用捉超。那么要怎么做才能避免掉這樣情況胧卤。
IDictionary testDic_2 =newDictionary();
foreach(KeyValuePair kvp in testDic_1){ ?testDic_2.Add(kvp); }
//ok ..感覺這個方法就是弱智,一般情況是不會對字典進行2級引用的拼岳。沒有必要枝誊。因為字典本身是無序的。他只是根據(jù)key去取值惜纸。