将多个变量添加到列表中

时间:2014-04-17 07:24:08

标签: c# variables

我想知道是否有任何方法可以将以下代码编写得更短......

public PictureBox pb1; 
public PictureBox pb2; 
public PictureBox pb3;
..... 
public PictureBox pb50;

然后,有没有办法将所有这些变量添加到列表中,而无需再次执行相同的丑陋代码。

listPB.add(pb1); listPB.add(pb2);...... ListPB.add(pb50);

我使用的方法非常愚蠢,我希望还有其他方法可以做到。谢谢你的帮助!

6 个答案:

答案 0 :(得分:8)

你可以像这样制作一个特别的集合:

PictureBox[] pictureBoxen = {pb1, pb2, pb3, ..., pb50};

然后您可以使用列表中的AddRange添加

listPB.AddRange(pictureBoxen);

或者,如果在该地点创建了listPB,并且只包含这些变量,则可以执行以下操作:

List<PictureBox> listPB = new List<PictureBox>{pb1, pb2, ..., pb50};

请注意,这种语法仅在2008年的C#3中引入,因此可以安全地假设您正在使用该语法或更高版本。

对于C#2及以下版本,循环是我能想到的最好的。

答案 1 :(得分:2)

使用循环

for(int i = 0; i < 10; i++)
{
    PictureBox p = new PictureBox();
    listPb.Add(p);
}

答案 2 :(得分:2)

使用此:

public PictureBox pb1,pb2,pb3,pb4....,pb50;

然后

List<PictureBox> listPB = new List<PictureBox>{pb1, pb2, ..., pb50};

答案 3 :(得分:2)

你可以这样做:

List<PictureBox> listPicture = new List<PictureBox>() { pb1, pb2, pb3, pb4, pb5, etc... };

答案 4 :(得分:1)

List<PictureBox> list = new List<PictureBox>();
    for(int i = 0; i < 50; i++)
    {
    list.add(new PictureBox{
      //set properties here..
    });
    }

答案 5 :(得分:1)

如果列表是你的初始化,我会在开头使用数组:

PictureBox[] pictures = new PictureBox[50];
for (int i = 0; i < pictures.Length; i++)
{
    pictures[i] = new PictureBox();

    // Do something else
}

如果通过其他方式生成50个实例,我建议使用带有Regex的Notepad ++ Find and Replace