Самый быстрый способ обнулить 2D-массив в С#
У меня есть 2D-массив, который я хочу очистить, и reset до 0 значений. Я знаю, как очистить вектор (1D-массив) с помощью Array.Clear()
, но я не знаю, как лучше очистить 2D-матрицу.
double D = new double[10];
Array.Clear(D, 0, D.Length);
Как очистить массив 2D N x M
double D[,] = new double[N,M];
Спасибо за любую помощь, которую вы можете предоставить.
Ответы
Ответ 1
Array.Clear
также работает с многомерными массивами:
double[,] D = new double[M,N];
Array.Clear(D, 0, D.Length);
Обратите внимание: нет необходимости сами вычислять длину, так как свойство Length
возвращает общее количество элементов, независимо от числа размеров:
32-разрядное целое число, которое представляет общее число элементов во всех измерениях массива; ноль, если в массиве нет элементов.
Ответ 2
Просто перераспределите его.
double D[,] = new double[N,M];
создает пустой 2D-массив.
Ответ 3
Вы можете использовать тот же метод, но вам, возможно, придется вычислить реальное значение параметра length
:
double D[,] = new double[N,M];
Array.Clear(D, 0, M*N);
Я бы использовал M*N
, потому что он более читабельный, и я не знаю, что возвращает свойство length
для 2-dimmentional array.