이것은 해결하려는 문제의 단순화 된 버전입니다. 나는 List
에 int[]
을 추가하려고 시도하지만 List
의 모든 배열을 마지막 반복에서 하나를 업데이트합니다. 왜 그런가요? 어떻게이 문제를 해결할 수 있습니까? 예를 들어 1 int
일 경우 문제가되지 않습니다.배열에 int 배열을 추가하지 않고 배열의 마지막 버전 만 가져옵니다.
intArray = new int[9];
for (int i = 0; i < 9; i++)
{
intArray[i] = i;
}
Test.Add(intArray);
for (int i = 0; i < 9; i++)
{
intArray[i] = i * 2;
}
Test.Add(intArray);
foreach (var item in Test)
{
for (int i = 0; i < 9; i++)
{
Console.WriteLine(item[i]);
}
}
Console.ReadKey();
}
public static int[] intArray { get; set; }
public static List<int[]> Test = new List<int[]>();
단 하나의 배열을 만드는 것입니다. 귀하의 목록에 동일한 배열에 대한 많은 참조가 포함되어 있습니다. 이제 참조 유형에 대해 배울 수있는 좋은 시간입니다. 예를 들어 http://jonskeet.uk/csharp/references.html을 참조하십시오. –
각각의'Add' 후에,'intArray = new int [9];'이 라인을 반복하여 새로운 배열을 인스턴스화합니다. –