C#使用循环遍历对象名称

时间:2018-03-24 21:43:08

标签: c# loops object

我有一个数独游戏,我想自动生成一个数独游戏,以便玩家可以解决它。

当我在2d-Array中生成数字时,我已经做过了,我希望通过将这些值放在81个按钮的text-property上来使这些值可见。按钮都以类似的方式命名。 (sudoku_0_0,sudoku_0_1等 - 第一个数字是x坐标,第二个数字是y坐标)

我可以通过循环将值放在按钮上吗? 像:

for(var x=0;x<=8;x++){
    for(var y=0;y<=8;y++){
        sudoku_x_y.Text = "Hello"
    }
} 

显然这不起作用,但有没有办法做类似的事情?

1 个答案:

答案 0 :(得分:4)

也可以将按钮放入数组中。

制作2D按钮阵列,然后执行以下操作:

Button[][] sudokuButtons = new Button[9][9];
for (int row = 0 ; row != 9 ; row++) {
    for (int col = 0 ; col != 9 ; col++) {
        var name = string.Format("sudoku_{0}_{1}", row, col);
        sudokuButtons[row][col] = this.Controls.Find(name, true).FirstOrDefault() as Button;
    }
}