C# 在c中使用变量执行相同类型的工作#

C# 在c中使用变量执行相同类型的工作#,c#,picturebox,C#,Picturebox,在我的程序中有一段代码: bigbg1.Image = null; bigbg2.Image = null; bigbg3.Image = null; bigbg4.Image = null; bigbg5.Image = null; bigbg6.Image = null; bigbg7.Image = null; bigbg8.Image = null;

在我的程序中有一段代码:

        bigbg1.Image = null;
        bigbg2.Image = null;
        bigbg3.Image = null;
        bigbg4.Image = null;
        bigbg5.Image = null;
        bigbg6.Image = null;
        bigbg7.Image = null;
        bigbg8.Image = null;
        bigbg9.Image = null;

其中,
bigbg
1-9是
PictureBox
类型的变量。如何缩短此代码?我想使用类似于“
for
”的函数,但我不知道如何操作。

如果您使用的是winforms,您只需在picturebox控件上迭代即可:

foreach(var pictureBox in this.Controls.OfType<PictureBox>())
    pictureBox.Image = null;
foreach(this.Controls.OfType()中的var pictureBox)
pictureBox.Image=null;

您可以将
数组
用于

pictureBox [] _pictureBox =   this.Controls.OfType<PictureBox>();
for(int i=0; i<_pictureBox.lenght;i++)
{
_pictureBox[i] =null;
}
pictureBox[]\u pictureBox=this.Controls.OfType();

对于(inti=0;i类似于其他帖子,创建一个数组并使用linqforeach方法

List<PictureBox> pbs = new List<PictureBox>();
pbs.AddRange(new [] { bigbg1, bigbg2, bigbg3, bigbg4, bigbg5, bigbg6, bigbg7, bigbg8, bigbg9 });
pbs.ForEach(p => p.Image = null);
List pbs=new List();
AddRange(新[]{bigbg1,bigbg2,bigbg3,bigbg4,bigbg5,bigbg6,bigbg7,bigbg8,bigbg9});
pbs.ForEach(p=>p.Image=null);
更新

下面是一个简洁、紧凑的语法,它利用了公认的答案及其注释:

this.Controls.OfType<PictureBox>()
  .Where(p => p.Name.StartsWith("bigbg")).ToList()
    .ForEach(p => p.Image == null);
this.Controls.OfType()
.Where(p=>p.Name.StartsWith(“bigbg”).ToList()
.ForEach(p=>p.Image==null);

基本上是创建一个数组或集合变量……如果没有关于
bigbg*的更多信息,就很难给出更多细节。
你是说'for'(int i=1;iPerhaps带有
。Where
以在名称开头过滤?如果您想要所有图片框,此代码非常完美。@BradleyDotNET我认为此解决方案以及
。Where
非常适合我的程序。非常感谢!