Подтвердить что ты не робот

Самый быстрый способ обнулить 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];

Спасибо за любую помощь, которую вы можете предоставить.

4b9b3361

Ответ 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.