Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 标签数组不工作c_C#_Arrays - Fatal编程技术网

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