C#中的Foreach循环转换错误

时间:2015-09-29 21:30:52

标签: c#

我正在刷新并查看我的一些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 个答案:

答案 0 :(得分:0)

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

doubles

数组包含arrays,而不是CARVER HOUSE - KITCHEN( CARVER HOUSE - KITCHEN[ CARVER HOUSE - KITCHEN - ( CARVER HOUSE - KITCHEN :

C#中的二维数组是实数组,而不是数组数组

答案 1 :(得分: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);
}
相关问题