U3D游戏开发(C#基础)
一、值类型和引用类型的区别之一
Dictionary的TryGetValue out 出来的value 值 如果是个 引用类型 你用个变量接收 ,如果请空了这个变量 那么随之这个字典的value 也会被清空。
代码如下:
Dictionary<int, List<string>> dic = new Dictionary<int, List<string>>();
dic.Add(1, new List<string> { "21", "23" });
int index =1;
List<string> list;
dic.TryGetValue(index, out list);
list.Clear(); //把这个临时list清空的话 那么字典key 所对应的value 值也会被清空
// 如果字典的数据不想被清空的话 那么只拷贝它的数值 不引用它的地址
// 可以这样写
List<string> _list = new List<string>(list);
// 对_list 后续的操作 就不影响 list 和字典了