我可以使用foreach将标签数组与现有标签匹配

时间:2014-02-10 23:28:48

标签: c# arrays foreach labels

我的代码是:

labels[0] = this.label1;
labels[1] = this.label2;
labels[2] = this.label3;
labels[3] = this.label4;
labels[4] = this.label5;

有没有更短的方式来写这个?也许使用foreach?我试过......

foreach (Label label in labels)
{
    labels[temp] = this.label[label];
}

但当然this.label [label]语法不正确。

2 个答案:

答案 0 :(得分:2)

如果您想将所有标签放入数组(标签将按照您添加到表单中的顺序添加):

var labels = Controls.OfType<Label>().ToArray();

或者,如果你想只带标签1..5并按照他们的id按升序排列,无论何时添加标签(假设所有标签都有像labelN这样的名称 - 否则你可以使用正则表达式检查名称模式{ {1}}):

^label\d+$

答案 1 :(得分:2)

我认为this引用了您的表单,如果是这样,您可以创建一个这样的标签数组:

Label[] labels = this.Controls.OfType<Label>().ToArray();