2

我的问题很简单:我怎样才能进一步缩短这段代码?

 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);
4

4 回答 4

2

尝试一个集合初始化器

List<Button> buttonList = new List<Button>() 
{    
     button1,
     button2,
     button3,
     button4,
     button5,
     button6,
     button7,
     button8,
     button9
 }
于 2013-01-24T00:39:53.490 回答
1

您可以使用集合初始化程序

var buttonList = new List<Button>
{
   button1, button2, button3,
   //...
};
于 2013-01-24T00:39:32.537 回答
0

您可以使用集合初始化程序:

List<Button> buttonList = new List<Button>
{
    button1,
    button2,
    button3,
    button4,
    button5,
    button6,
    button7,
    button8,
    button9,
}
于 2013-01-24T00:39:51.823 回答
0

如果您将按钮存储在某个控件的Controls集合中(例如 aForm或 a 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())
{
    //...
}
于 2013-01-24T00:44:37.197 回答