2015-09-29 51 views
0

我正在刷新和检查一些C#笔记。Foreach循环在C中转换错误#

我第一次运行他的一个例子,我得到这个错误:Cannot convert type double to double[] error。对我来说,代码看起来不错,我不知道它为什么不转换。为什么这行会导致错误?

class Program 
    { 

     static void Main(string[] args) 
     { 
      double[,] list1; 
      int r = 5, c = 10; 
      list1 = new double[r, c]; 

      for(int i = 0; i < r; i++) 
       for(int j = 0; j<c; j++) 
        list1[i,j] = Convert.ToDouble(Console.ReadLine()); 

      foreach (double [] i in list1) // -- THIS LINE IS GIVING ME THE ERROR -- 
      { 
       foreach (double j in i) 
        Console.WriteLine(j); 
      } 

      Console.Read(); 
     } 
    } 
+2

'双[] []'='双[, ]';第一个是双精度数组的数组''(double [])[]',第二个是双精度数组的双精度数组 –

回答

0

您可以通过在你的代码行告诉数组中的元素类型:

list1[i,j] = Convert.ToDouble(Console.ReadLine()); 

数组包含doubles,不C#arrays

二维数组是真实的数组,而不是数组阵列

0

多维数组本身并不是可枚举的。您可以通过索引这样的迭代:

for (int i = 0; i < list1.GetLength(0); i++) 
{ 
    for (int j = 0; j < list1.GetLength(1); j++) 
    { 
     Console.WriteLine(list1[i, j]); 
    } 
} 

这是你的榜样等同于对待它就像一个一维数组:

foreach (double d in list1) 
{ 
    Console.WriteLine(d); 
}