我正在尝试检查按钮的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 };
显然这是错误的,实现这个数组的正确方法是什么,以便我可以检查按钮的属性?
答案 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
的初始化,以避免创建空数组。