多次元配列もArray.Copyメソッドで複写できます。 多次元配列を複写する場合は、次元数が同じで複写先の長さが十分であれば、複写元と複写先で次元毎の長さが異なっていても複写することが出来ます。
Array.Copyメソッドで2次元配列を複写する
using System;
class Sample {
static void Main()
{
// 複写元の2次元配列(長さが4×3)
int[,] matrix1 = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
};
// 複写先の2次元配列(長さが3×5)を確保
var matrix2 = new int[5, 3];
// 配列を複写
Array.Copy(matrix1, matrix2, matrix1.Length);
// それぞれの配列の内容を表示
Print(matrix1);
Console.WriteLine();
Print(matrix2);
}
static void Print(int[,] matrix)
{
for (var d1 = 0; d1 < matrix.GetLength(0); d1++) {
for (int d2 = 0; d2 < matrix.GetLength(1); d2++) {
Console.Write("{0}, ", matrix[d1, d2]);
}
Console.WriteLine();
}
}
}
実行結果
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0,