我的问题很简单:如何进一步缩短此代码?
List<Button> buttonList = new List<Button>();
buttonList.Add(button1);
buttonList.Add(button2);
buttonList.Add(button3);
buttonList.Add(button4);
buttonList.Add(button5);
buttonList.Add(button6);
buttonList.Add(button7);
buttonList.Add(button8);
buttonList.Add(button9);
答案 0 :(得分:2)
List<Button> buttonList = new List<Button>()
{
button1,
button2,
button3,
button4,
button5,
button6,
button7,
button8,
button9
}
答案 1 :(得分:1)
您可以使用collection initializer:
var buttonList = new List<Button>
{
button1, button2, button3,
//...
};
答案 2 :(得分:0)
您可以使用集合初始值设定项:
List<Button> buttonList = new List<Button>
{
button1,
button2,
button3,
button4,
button5,
button6,
button7,
button8,
button9,
}
答案 3 :(得分:0)
如果您的按钮存储在某个控件的Controls
集合中(例如,Form
或Panel
),那么您可以使用:
//here `this` is supposed to be a `Form`
List<Button> buttonList = this.Controls.OfType<Button>()
.OrderBy(b=>b.Name)
.ToList();
在这种情况下,您可以使用您的方法,返回存储在某个容器控件中的可枚举按钮:
public IEnumerable<Button> GetButtons()
{
return this.Controls.OfType<Button>().OrderBy(b => b.Name);
//return this.panel1.Controls.OfType<Button>().OrderBy(b => b.Name);
//actually any container control you're having your buttons within
}
你可以使用它:
foreach(Button b in GetButtons())
{
//...
}