将多个变量添加到列表中

Eas*_*ily 6 c# variables

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

public PictureBox pb1; 
public PictureBox pb2; 
public PictureBox pb3;
..... 
public PictureBox pb50;
Run Code Online (Sandbox Code Playgroud)

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

listPB.add(pb1); listPB.add(pb2);...... ListPB.add(pb50);
Run Code Online (Sandbox Code Playgroud)

我使用的方法真的很愚蠢,我希望还有其他方法可以做到.谢谢您的帮助!

SWe*_*eko 8

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

PictureBox[] pictureBoxen = {pb1, pb2, pb3, ..., pb50};
Run Code Online (Sandbox Code Playgroud)

然后你可以AddRange在列表上使用它们来添加它们

listPB.AddRange(pictureBoxen);
Run Code Online (Sandbox Code Playgroud)

或者,如果listPB在该位置创建,并且仅包含这些变量,则可以执行以下操作:

List<PictureBox> listPB = new List<PictureBox>{pb1, pb2, ..., pb50};
Run Code Online (Sandbox Code Playgroud)

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

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