如何使用Column,Rows数组(反之亦然)

时间:2010-11-23 07:06:45

标签: c# multidimensional-array

制作生命游戏我需要一个30x20(X * Y)的网格。问题是(我有另外一个问题)c#数组是行,列。因此,当我使用CursorPosition()进行绘制时,我需要交换它,因为它首先需要列。 有什么方法可以扭转它,所以我可以像这样使用吗?

int [,] Array = new int[30,20];
Console.SetCursorPosition(29,19) // now its vice versa, I would need to use 19,29.

3 个答案:

答案 0 :(得分:3)

我认为这纯粹是概念性的(c#数组既不是行/ col,也不是开发人员的col /行),而是以深度优先或广度优先的方式迭代你的数组,例如

//Breadth-first
for(int x = 0; x < col.Length; x++)
{    
     for(int y = 0; y < row.Length; y++)
     {             
     }    
}

//Depth-first
for(int y = 0; y < row.Length; y++)
{    
     for(int x = 0; x < col.Length; x++)
     {    
     }    
}

答案 1 :(得分:0)

起初我倾向于回答否,因为Console.SetCursorPosition的参数是位置参数。但是当我记得C#也有命名参数时,这样的事情就可以了。

int a = 10;
int b = 20;
Console.SetCursorPosition(top: a, left: b);

这是您可以获得的最接近的,如果您想知道原因,请搜索上述条款

答案 2 :(得分:0)

您需要的是一个数据结构,用于存储与x,y坐标相关的日期。

您不必为此使用多维数组。您可以非常轻松地创建一个隐藏其他类中特定实现的类。

事实上,这将使您的设计更加健壮。

您可以将数据存储在数据库,比特阵列,单维数组等中。