2

配列の現在の状態を保存し、後でその配列を変更したいのですが、配列をリストに保存してから配列を変更すると、リストの配列も変更されます。これはサンプルコードであり、私のコードの一部です:

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 changes
   ....
}

このコードをトレースすると、リスト内の配列も変更されることに注意してください。ただし、これは望ましくありません。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

6

アレイのコピーを追加します。

List<int[]> lisarr = new List<int[]>();
int[] a = new int[1];
a[0] = 1;
lisarr.Add(a.ToArray());
a[0] = 10;
于 2013-03-07T15:37:38.273 に答える