我有一个简单的 for 循环,如下所示:
for (int i = 0; i > 20; i++)
{
}
现在我有 20 个标签(label1、label2、label3 等等..)
我想做类似的事情:
for (int i = 0; i > 20; i++)
{
label[i].Text = String.Empty;
}
实现这一目标的最简单方法是什么?
如果您的标签放在一个容器上,例如Form
,您可以执行以下操作:
foreach(Label l in this.Controls.OfType<Label>())
{
l.Text = string.Empty;
}
对任何其他容器都相同,例如,Panel
或GroupBox
,只需替换this
为容器的名称(panel1.Controls
等)
我将您的解决方案称为设计缺陷,但我会这样做:
var itemArray = this.Controls.OfType<Label>();
foreach(var item in itemArray)
{
item.Text = string.Empty;
}
创建一个数组或标签列表并遍历该列表以设置每个标签的属性
List<Label> labels = new List<Label>();
labels.Add(label1);
foreach(Label l in labels)
{
l.Text = String.Empty;
}
不知道是不是最简单,反正是最短的。。
this.Controls.OfType<Label>().ToList().ForEach(lbl => { lbl.Text = String.Empty; });
也许您可以将 FindControl 与类似的东西一起使用
for(int i = 0; i < 5; i++)
{
(FindControl("txt" + i.ToString())).Text = String.Emty;
}