C# list集合引用类型赋值后清除数据源数据时值后也一并清除问题处理
这个问题很简单,就是在赋值时是引用传递不是值传递,说白了就是用=号赋值时给左边变量的值不是真正的数据,而是原变量的引用地址或说是内存地址。如下图:
如上图的关系,把A清除了。B也也变成了空值。
如何解决这个问题。也很简单。深度复制
代码
List<string> B = A.ToList();//ToList()方法会返回一个数据相同内存地址不同的一个新对象。这时再去清除A就没有问题了
A.Clear();//清除问题OK。