List<String> a = new List<String>();
List<String> b = a;
如上代码,a和b指向的是同一个地址,对b进行操作时a也会改变。现在想实现的就是赋值之后,对b的操作不会改变a 的值,也就是a和b指向的是不同的地址。求解,,谢谢了

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

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

  5.   

    x =>listb.Add(new string(x));
      

  6.   

    你既然要实现b的操作不会改变a 的值,也就是a和b指向的是不同的地址,那你为何要把a和b关联起来,分开不就行了么
      

  7.   

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