2013-03-07 76 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