我想在此列表中添加我的按钮
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序列化等其他内容时,它会让我的生活更轻松
答案 0 :(得分: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 :(得分:1)
您可以使用LINQ Select
:
buttonss = buttons.Select(b => b.ToList()).ToList();