多维数组中所有数字的总和

Dch*_*hau 1 c# multidimensional-array

我正在学习C#并遇到多维数组的问题.

我似乎无法弄清楚如何找到数组中所有元素的总和.例如

int[,] array = { { 52, 76, 65 }, { 98, 87, 93 }, { 43, 77, 62 }, { 72, 73, 74 } };
Run Code Online (Sandbox Code Playgroud)

所以总和应该是:

52 + 76 + 65 + 98 + ......

我试图使用for循环,但这只是给我维度1中每个数组的总和.例如

private int[,] array = { { 52, 76, 33}, { 98, 87, 93 }, { 43, 77, 62 }, { 72, 73, 74 } };
public void ArraySum()
{      
    double sum;        
    for (int i = 0; i < array.GetLength(0); i++)
    {
        sum = 0;                   
        for (int j = 0; j < array.GetLength(1); j++)    
            sum += array[i, j];            

        Console.WriteLine("The sums are for the array  {0} is {1}: ", i, sum);
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

dee*_*see 5

另一个答案指出了你的代码有什么问题.这是使用LINQ循环的简短替代方法:

int[,] array = { { 52, 76, 65 }, { 98, 87, 93 }, { 43, 77, 62 }, { 72, 73, 74 } };
int sum = array.Cast<int>().Sum();
Run Code Online (Sandbox Code Playgroud)

所述Cast用于将多维数组到转换IEnumerable<int>这然后允许您使用Sum扩展方法.