一方、Array.Clearメソッドでは多次元配列をクリアすることも出来ますが、その際多次元配列は1次元配列の様に扱われます。 Array.Clearメソッドの引数に指定するインデックスは、多次元配列を1次元配列に展開したときの位置として解釈されるという点に注意が必要です。
Array.Clearメソッドで2次元配列をゼロクリアする
using System;
class Sample {
static void Main()
{
int[,] matrix = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
};
// 2次元配列全体の3番目の要素から4個分をクリア
Array.Clear(matrix, 3, 4);
for (var d1 = 0; d1 < matrix.GetLength(0); d1++) {
for (var d2 = 0; d2 < matrix.GetLength(1); d2++) {
Console.Write("{0}, ", matrix[d1, d2]);
}
Console.WriteLine();
}
}
}
実行結果
0, 1, 2, 0, 0, 0, 0, 7, 8, 9, 10, 11,