如何将表单中的对象分配给c#

时间:2016-02-09 16:16:05

标签: c# arrays object visual-studio-2012

我正在尝试检查按钮的text属性,以确定它的text属性中是否包含任何内容。

我会这样做:

 if (btn_1.Text != string.Empty && btn_2.Text != string.Empty && ETC...)
    MessageBox.Show("The game is a draw")

检查所有9个按钮似乎效率低下"如果我可以将按钮及其属性分配给一个数组,我将使用foreach语句检查它们,这是乏味的。

问题在于,即使在搜索互联网之后,我也无法弄清楚如何这样做。

我有这个作为我的声明:

 object[] buttonArray = new object[]{ btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9 };

显然这是错误的,实现这个数组的正确方法是什么,以便我可以检查按钮的属性?

2 个答案:

答案 0 :(得分:0)

您可以使用Linq查询

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

buttonList.Add(btn1);
.
..
...
..
buttonList.Add(btn9);

vsr result  = buttonList.All(x=>x.Text!=string.Empty);

if(result)
MessageBox.Show("The game is a draw");

或者您可以使用object intializer而不是多次调用Add

    List<Button> buttonList = new List<Button>()
{
   btn1,
   btn2,
   ...
   btn9
};

    vsr result  = buttonList.All(x=>x.Text!=string.Empty);

    if(result)
    MessageBox.Show("The game is a draw");

答案 1 :(得分:0)

这将有效:

using System.Linq;

.....

Button[] buttonArray = new Button[] {btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9};
if(buttonArray.All(b => b.Text != string.Empty))
    MessageBox.Show("The game is a draw");

,其中    btn_1..btn_9声明为:

Button btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9;

确保在初始化buttonArray .. btn_1之后放置btn_9的初始化,以避免创建空数组。