Copyメソッドでは次元数が異なる配列への複写が出来ないので、そういった場合はfor文・foreach文を使って要素を一つずつコピーする必要があります。
1次元配列から2次元配列へ複写する
using System;
class Sample {
static void Main()
{
// 複写元の1次元配列(長さが12)
int[] matrix1 = {
0, 1, 2, 3,
4, 5, 6, 7,
8, 9, 10, 11,
};
// 複写先の2次元配列(長さが4×3)を確保
var matrix2 = new int[3, 4];
// 配列を複写
for (var i = 0; i < matrix1.Length; i++) {
int d1 = i / matrix2.GetLength(1);
int d2 = i % matrix2.GetLength(1);
matrix2[d1, d2] = matrix1[i];
}
// 結果を表示
for (var d1 = 0; d1 < matrix2.GetLength(0); d1++) {
for (var d2 = 0; d2 < matrix2.GetLength(1); d2++) {
Console.Write("{0}, ", matrix2[d1, d2]);
}
Console.WriteLine();
}
}
}
実行結果
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,