对c#中的变量执行相同类型的操作

本文关键字:同类型 操作 执行 变量 | 更新日期: 2023-09-27 18:24:10

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

        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;

其中CCD_ 1 1-9是CCD_。如何缩短此代码?我想使用类似于"for"的函数,但我不知道如何做到这一点。

对c#中的变量执行相同类型的操作

如果您使用的是winforms,您可以迭代您的picturebox控件:

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

与其他帖子类似,创建一个数组并使用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);

更新

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

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

您可以使用arrayfor:

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