C# 标签数组不工作c
我想使用标签数组,但它不起作用,我不知道我缺少什么。 以下是我正在努力工作的代码:C# 标签数组不工作c,c#,arrays,C#,Arrays,我想使用标签数组,但它不起作用,我不知道我缺少什么。 以下是我正在努力工作的代码: for (int x = 1; x <= 10; x++) { Label[] label1 = new Label[10]; label1[x] = new Label(); label1[x].AutoSize = true; label1[x].Text = "text"; label1[x].Left +=10; label1[x].Top +=1
for (int x = 1; x <= 10; x++)
{
Label[] label1 = new Label[10];
label1[x] = new Label();
label1[x].AutoSize = true;
label1[x].Text = "text";
label1[x].Left +=10;
label1[x].Top +=10;
}
在每次迭代中,您将初始化一个新的Label1数组,因此最终只有最后一个,最后一个位置有1个项目 将label1的声明移到循环之外:
//Move this line outside of the loop's scope
Label[] label1 = new Label[10];
//Loop from 0 to the Length of the array instead of repeating 10 again
for (int x = 0; x < label1.Lenth; x++)
{
label1[x] = new Label();
label1[x].AutoSize = true;
label1[x].Text = "text";
label1[x].Left +=10;
label1[x].Top +=10;
}
我建议您查看有关使用数组的信息:您在每次迭代中都会初始化一个新的Label1数组,因此最终您将只拥有最后一个,最后一个位置有一个项目
int n = 10;
Label[] label1 = Enumerable
.Range(0, n)
.Select(x => new Label() {
AutoSize = true,
Text = "text",
Left = x * 10,
Top = x * 10,
})
.ToArray();
将label1的声明移到循环之外:
//Move this line outside of the loop's scope
Label[] label1 = new Label[10];
//Loop from 0 to the Length of the array instead of repeating 10 again
for (int x = 0; x < label1.Lenth; x++)
{
label1[x] = new Label();
label1[x].AutoSize = true;
label1[x].Text = "text";
label1[x].Left +=10;
label1[x].Top +=10;
}
我建议您查看有关使用数组的信息:为了避免错误填写此类错误,请尝试生成数组:
int n = 10;
Label[] label1 = Enumerable
.Range(0, n)
.Select(x => new Label() {
AutoSize = true,
Text = "text",
Left = x * 10,
Top = x * 10,
})
.ToArray();
为避免错误填写此类错误,请尝试生成数组:
int n = 10;
Label[] label1 = Enumerable
.Range(0, n)
.Select(x => new Label() {
AutoSize = true,
Text = "text",
Left = x * 10,
Top = x * 10,
})
.ToArray();
除Gilad Green的观点外,如果您确实希望这些标签出现在UI中的某个位置,则必须将它们添加到某个控件的控件集合中。此外,循环中还有一个off by 1错误。如果标签[0]中没有任何内容,则标签[10]不存在。看来吉拉德的回答已经解决了这个问题。@Tészta Sajtos-这一次可以从代码中理解问题,但下一次当你说不工作时,请指定发生了什么错误:异常、意外行为/输出……除了吉拉德·格林的观点,如果你真的希望这些标签出现在UI的某个地方,必须将它们添加到某个控件的控件集合中。此外,循环中存在off by 1错误。如果标签[0]中没有任何内容,则标签[10]不存在。看来吉拉德的回答已经解决了这个问题。@Tészta Sajtos-这次可以从代码中理解问题,但下次当你说“不工作”时,请说明出了什么问题:异常,意外的行为/输出…我确实喜欢linq,它是一个很好的工具,但我认为对于这个级别的情况来说,这个解决方案是一个过分的技巧。。这是一个非常基本的数组处理知识似乎是一个足够好的答案,但对于一个假定的初学者来说,这肯定有点太多了;e、 g.问题中的代码使用10作为for.中的幻数。。我确实喜欢linq,它是一个很好的工具,但我认为对于这个级别的情况来说,这个解决方案是一个过分的技巧。。这是一个非常基本的数组处理知识似乎是一个足够好的答案,但对于一个假定的初学者来说,这肯定有点太多了;e、 g.问题中的代码使用10作为for.中的幻数。。x