다음과 같은 방법이 있습니까?다차원 배열의 슬롯에 전체 배열을 저장하는 방법은 무엇입니까?
int[,] multiArray = new int[5,5];
multiArray[0] = {0, 1, 3, 4, 5};
다음과 같은 방법이 있습니까?다차원 배열의 슬롯에 전체 배열을 저장하는 방법은 무엇입니까?
int[,] multiArray = new int[5,5];
multiArray[0] = {0, 1, 3, 4, 5};
아니요, 다차원 배열을 사용할 수 없습니다. 배열의 크기는 고정되어 있으며 컴파일러는 배열에 할당 할 수있는 크기가 아닙니다.
multiArray[0, 0..4] = { 1, 2, 3, 4, 5 };
나이 : 그러나
multiArray[0..4, 0] = { 1, 2, 3, 4, 5 };
, 당신이 들쭉날쭉 배열을 사용할 수 있습니다
int[][] multiArray = new int[5][];
multiArray[0] = new[] { 1, 2, 3, 4, 5 };
감사합니다. – reformed
-1 : 가능합니다. 특히 깨끗하지는 않지만 확실히 가능합니다. –
을이 작업을 수행하는 것을 의미하는 경우 컴파일러가 알고 얼마나 또한
, 당신이 원하는 것은 배열의 각 요소를 같은 행에 저장하는 것인데 multiArray의 다른 열을 저장하는 것입니다.
multiArray[0][0] = 0;
multiArray[0][1] = 1;
multiArray[0][2] = 2;
multiArray[0][3] = 3;
multiArray[0][4] = 4;
multiArray[0][5] = 5;
나는 이것이 당신이하려는 일이라고 생각합니다. for 루프를 사용하여 이것을 단순화 할 수도 있습니다.
이것은 다차원 배열에서 작동하지 않습니다 ... – pascalhein
나는 각 슬롯을 개별적으로 할당하지 않아도되도록 노력하고 있습니다. – reformed
.NET 다차원 배열은 행 우선 순서로 저장되므로 Buffer.BlockCopy
을 사용하여 한 번에 전체 행을 채울 수 있습니다. 이 메서드는 과 같은 메서드와 달리 요소가 아니라 바이트에서 작동하므로 sizeof(int)
을 사용해야합니다.
int[,] multiArray = new int[5, 5];
int rowIndex = 0;
int[] rowData = { 0, 1, 3, 4, 5 };
int destOffset = rowIndex * sizeof(int) * multiArray.GetLength(0);
Buffer.BlockCopy(rowData, 0, multiArray, destOffset, rowData.Length * sizeof(int));
지터 배열을 사용하십시오. int [] [] multiArray = new int [5] []; multiArray [0] = new [] {1, 2, 3, 4, 5}; ' – I4V