多維陣列的Resize
在不規則的多維陣列中,每個陣列其實是各自獨立。所以Resize也是會各自的分開各自處理。比如說下面的一個例子: int[][] myJaggedArray = { new int[] { 2, 3, 4 }, new int[] { 13, 23 } }; 如果說myJaggedArray[0]的Length由3要改為4, myJaggedArray[1]的Length由2改為1。 Array.Resize(ref myJaggedArray[0], 4); Array.Resize(ref myJaggedArray[1], 1); 結果會變成 myJaggedArray[0]變成{ 2, 3, 4, 0 } myJaggedArray[1]變成{ 13 } 但是規則的多維陣列中,整個陣列可以說是一體的。 因為這種的陣列,並無法用Array.Resize這個方法來進行。所以很多網路上的作法是利用Array.Copy進行。比如像下方的程式段: int[,] myArray = new int[2, 3] { { 2, 3, 4 }, { 13, 23, 33 } }; myResize1(ref myArray, 3, 4); private void myResize1(ref int[,] changeArray, int rank0, int rank1) { int s_rank0 = changeArray.GetLength(0); int s_rank1 = changeArray.GetLength(1); int[,] array2 = new int[rank0, rank1]; Array.Copy(changeArray, array2, s_rank0 * s_rank1); changeArray = array2; } 最後的結果會變成 myArray[3, 4]= { { 2, 3, 4, 13 }, { 23, 33, ...