在C#中将2D数组清零的最快方法

时间:2013-10-29 21:26:44

标签: c# .net arrays performance multidimensional-array

我有一个我要清除的2D数组并重置为0值。我知道如何使用Array.Clear()清除矢量(1D数组),但我不知道清除2D矩阵的最佳方法。

double D = new double[10];  
Array.Clear(D, 0, D.Length);

如何清除2D N x M阵列

double D[,] = new double[N,M];

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:33)

Array.Clear也适用于多维数组:

double[,] D = new double[M,N];
Array.Clear(D, 0, D.Length);

注意,不需要自己计算长度,因为Length属性返回元素的总数,而不管维数是多少:

  

一个32位整数,表示数组所有维度中的元素总数;如果数组中没有元素,则为零。

答案 1 :(得分:2)

您可以使用相同的方法,但可能需要计算真实的length参数值:

double D[,] = new double[N,M];
Array.Clear(D, 0, M*N);

我会使用M*N因为它更具可读性,而且我不知道2-dimmentional数组返回的Length属性。

答案 2 :(得分:1)

重新分配它。

double D[,] = new double[N,M];

创建一个空的2D数组。