static void Main(string[] args)
{ Dictionary<int, string> dic = new Dictionary<int, string>();
Dictionary<int, string> dic2 = new Dictionary<int, string>();
dic.Add(1, "HaHa");
dic.Add(5, "HoHo");
dic.Add(3, "HeHe");
dic.Add(2, "HiHi");
dic.Add(4, "HuHu");
dic2 = dic; //已经声明dic2 = dic
dic.Clear(); //dic清空,不会影响到dic2吧
foreach (var pair in dic2)
{
Console.WriteLine("Key:{0}, Value:{1}", pair.Key, pair.Value);
}
Console.ReadKey();
} 问题:dic清空,是在dic2 = dic之后执行的,应该不会影响到dic2吧,结果dic2怎么会空了呢?
dic.Add(1, "HaHa");
dic.Add(5, "HoHo");
dic.Add(3, "HeHe");
dic.Add(2, "HiHi");
dic.Add(4, "HuHu");
Dictionary<int, string> dic2 = new Dictionary<int, string>(dic);
dic.Clear(); //dic清空,不会影响到dic2吧
foreach (var pair in dic2)
{
Console.WriteLine("Key:{0}, Value:{1}", pair.Key, pair.Value);
}