本帖最后由 ccneal 于 2013-05-23 10:43:58 编辑

解决方案 »

  1.   

    这是肯定会的,因为List<T> rList = listOld只是将指针指向listOld,并不是复制可以考虑先用CopyTo到数组,然后再由数据转到List<T> rList 
      

  2.   

    var rList = listOld.ToList(); ToList()或者ToArray()内部都调用了Array.Copy()
      

  3.   

    你这个代码不抛异常吗?好像你的第二个foreach就不行。要想copy一份的话,得用深度拷贝,你的代码只是多了一个引用,指向堆中同一个位置。搜索c# 深度拷贝。可以序列化解决。