2013-03-26 76 views
0

我想加入这个名单我的按钮填充嵌套列表

List<List<Button>> buttonss = new List<List<Button>>(); 

这是我如何创建我的按钮:

Button[][] buttons; 

在上述方法(也尽量填充列表,但它是不对的):

for (int r = 0; r < row; r++) 
    { 
     for (int c = 0; c < col; c++) 
      { 
      buttons[r][c] = new Button(); 
      buttonss.Add(buttons[r][c]); 
      } 
    } 

我怎样才能使用此按钮配置在此列表中(我的数组必须是Button[][]的□不Button[,],因为它会让我的生活更轻松,当我做其他的东西,如XML序列化

+2

我希望你做'按钮=新的Button [] [行]'和'按钮[R] =新的Button [COL]'第一 – Nolonar 2013-03-26 15:47:14

+1

@Nolonar我喜欢你的评论让我觉得世界的命运取决于他的正确实例。主要是因为它。 :S – Devin 2013-03-26 15:53:13

+0

@Nolonar是的一切都完成了我没有粘贴整个代码 – Tacit 2013-03-26 15:54:30

回答

1

我不知道为什么你要存储此两个独立的方式,但如果你真的需要,那么你需要初始化每个内阵列和列表:

buttons = new Button[row][]; 
for (int r = 0; r < row; r++) 
{ 
    buttons[r] = new Button[col]; 
    List<Button> rowList = new List<Button>(); 
    buttonss.Add(rowList);  
    for (int c = 0; c < col; c++) 
    { 
    buttons[r][c] = new Button(); 
    rowList.Add(buttons[r][c]); 
    } 
} 

另一种方式来做到这一点也只是以商店在交错数组和转换到一个列表(或反之亦然):

// From List<List> to Jagged Array 
buttons = buttonss.Select(b=>b.ToArray()).ToArray(); 

// From Jagged Array to List<List> 
buttonss = buttons.Select(b=>b.ToList()).ToList(); 
1

你可以使用LINQ Select

buttonss = buttons.Select(b => b.ToList()).ToList();