初始化用于存储标签的数组

时间:2018-03-29 18:20:14

标签: c# arrays visual-studio labels

在我的程序中,我已经在设计窗口时制作了10个标签,它们被标记为标签1,标签2,......等等。我想一次执行所有这些标签的操作,所以我创建了一个数组来存储这些标签,然后对数组执行操作,因为它更容易应用循环。 我们是否可以应用循环将这些标签存储到数组中,因为如果标签为50,则遵循此策略将更加困难

Label[] labelArray = new Label[10];
labelArray[0] = label1;
labelArray[1] = label2;
labelArray[2] = label3;
labelArray[3] = label4;
labelArray[4] = label5;
labelArray[5] = label6;
labelArray[6] = label7;
labelArray[7] = label8;
labelArray[8] = label9;

2 个答案:

答案 0 :(得分:2)

如果感兴趣的标签都有共同点,例如他们都有"标签"在名称中,或者它们具有相同的Tag(这将是用于此目的的良好属性),那么您可以简单地使用

//using System.Linq;
var list = this.Controls.OfType<Label>().Where
( 
    label => label.Name.Contains("label")     //Use these, or any other
          && label.Tag == "MyUniqueTag"       //properties, to find what you need
);
foreach (var label in list)
{
    DoSomething(label);
}

另请参阅此related question

答案 1 :(得分:0)

对于Windows Forms,您可以使用:

List<Label> lbls = this.Controls.OfType<Label>().ToList();

现在,您已将所有lables列入清单。

你可以通过

获得它们
foreach(var lbl in lbls){
    //var value = lbl.Text;
}