2013-03-07 34 views
1

我要救我的当前阵列的状态,并在以后更改阵列,但是当保护我的列表数组,然后改变我的数组,数组中的名单也发生变化,这是样品代码,这是我的代码部分:如何通过值保存在列表数组不引用C#

void main() 
{ 
    List<int[]> lisarr = new List<int[]>(); 
    int[] a=new int[1]; 
    a[0]=1; 
    lisarr.Add(a); 
    a[0]=10; 
    // at this time lisarr[0] also change 
    .... 
} 

如果您跟踪此代码的通知,我在名单阵列还改变,但我不希望这样,我怎么能解决这个问题?

回答

5

添加您的数组的一个副本:

List<int[]> lisarr = new List<int[]>(); 
int[] a=new int[1]; 
a[0]=1; 
lisarr.Add(a.ToArray()); 
a[0]=10; 
+2

只是为了澄清,这个工作,因为'ToArray的()'内部副本的所有元素来使用'Array.CopyTo(新阵列)'然后返回它。 – 2013-03-07 15:43:17

相关问题