二维阵列打印C#

时间:2015-05-20 11:59:03

标签: c# arrays multidimensional-array

我想要打印一个2D数组,我尝试使用下面的代码,但它只打印数组的第一行,为什么要这样做而不是将整个数组打印成一行呢?

for (int x = 0, y = 0; y < 3; y++)
{
    for (; x < 3; x++)
        Console.Write("{0}, ", arr[x, y]);
}

5 个答案:

答案 0 :(得分:2)

试试这个:

for (int x = 0; x < 3; x++)
{
    for (int y = 0; y < 3; y++)
    {
        Console.Write("{0}, ", arr[x, y]);
    }
}

答案 1 :(得分:2)

基于列的打印。

for (int y = 0; y < 3; y++)
{
    for (int x = 0; x < 3; x++)
        Console.Write("{0}, ", arr[x, y]);
    Console.Write("\n"); //added for better formatting
}

如果您不关心格式化,

foreach(var arrEle in arr)
   Console.Write(arrEle+" ");

您的代码存在的问题是,您没有为每个x初始化y。这就是原因,我们必须在内部for循环中声明/初始化。

答案 2 :(得分:1)

x仅在外部循环开始时设置为0,因此在外部循环的后两次迭代中,x=3和内部循环测试失败。试试这个:

for (int y = 0; y < 3; y++)
{
    for (int x = 0; x < 3; x++)
        Console.Write("{0}, ", arr[x, y]);
}

答案 3 :(得分:1)

您在外部循环中定义了x = 0。这意味着一旦内循环运行一次,x将始终为3

尝试:

for (int y = 0; y < 3; y++)
{
    for (int x = 0; x < 3; x++)
        Console.Write("{0}, ", arr[x, y]);
}

答案 4 :(得分:1)

只需使用简单的 foreach 循环:

foreach (var item in arr)
  Console.Write("{0}, ", item);

foreach 循环也可用于多维数组。