日期:2014-05-17  浏览次数:20786 次

c# 赋值相关

List<String> a = new List<String>();
List<String> b = a;


如上代码,a和b指向的是同一个地址,对b进行操作时a也会改变。

现在想实现的就是赋值之后,对b的操作不会改变a 的值,也就是a和b指向的是不同的地址。

求解,,谢谢了

------解决方案--------------------
List<string> b = new List<string>(a);

------解决方案--------------------
List<String> a = new List<String>();
            var arr = new string[a.Count];
            a.CopyTo(arr);
            List<string> b = arr.ToList();

------解决方案--------------------
一个个赋值不行吗?
            List<String> lsta = new List<String>();
            List<String> lstb = new List<String>();
            lsta.ForEach(x => lstb.Add(x));

------解决方案--------------------
x =>listb.Add(new string(x));
------解决方案--------------------
你既然要实现b的操作不会改变a 的值,也就是a和b指向的是不同的地址,那你为何要把a和b关联起来,分开不就行了么