2015-11-01 184 views
-1

我想用某种循环 的这是我想出了这么远生成多个列表,但它不工作如何使用for循环生成多个列表?

class Program 
{ 
    static void Main(string[] args) 
    { 
     //board 
     int boardwith = 2; 
     int boardheight = 2; 
     for (int i = 0; i < boardheight; i++) 
     { 
      List<int> i = new List<int>(); 
     } 
    } 
} 

我会用列表来表示板游戏啊,生命。有没有更好的方式来代表董事会?

+0

你能更清楚地说'几个清单'吗? –

+1

什么不工作?你的宽度和高度总是一样吗?对于董事会,我希望你需要两个D的东西? – Megha

+0

你是什么意思?你需要更具体地了解你的问题。 –

回答

0

您可以使用数组的数组来表示一个董事会,试图访问指数较高时,它会抛出IndexOutOfRange异常比范围:

int boardHeight = 8; 
int boardWidth = 8; 

int[][] board = Enumerable.Range(0, boardHeight).Select(n => new int[boardWidth]).ToArray(); 

要获得一个现场使用的索引值,如int value = board[2][2];

至于其他的答案很可能说更好的选择是使用一个多维数组:

int[,] board = new int[boardWidth, boardHeight]; 

检查MSDN上jaggedmultidimensional阵列的文章。

+0

看起来很有希望。创建列表的名称是什么? –

+0

如果我想访问创建的列表之一? –

+0

假设我想用零填充最上面一行,我该怎么做? –

2

我认为阵列更适合你的问题,因为阵列有像你的棋盘一样的固定长度。列表适合动态调整大小的集合。

你可以使用一个二维数组这样

int[,] board = new int[width,height]; 

访问的小区是很容易的,然后。例如,左上角为:

int value = board[0,0]; 

和右下角的将是:

int value = board[width - 1, height - 1];