-1

为什么我会得到这个结果?

代码:

List<int> samba = new List<int>(new int[]
            {1,2,0,0,0,0,3,2,1,
             0,0,0,0,0,0,0,0,0,
             });
  foreach (int i in samba)
            {
                label1.Text += samba[i];
            }

结果:

1201111002111111111
4

2 回答 2

8

也许您并不是要在当前项目的索引处打印项目,而是要打印当前项目:

List<int> samba = new List<int>(new int[]
{1,2,0,0,0,0,3,2,1,
    0,0,0,0,0,0,0,0,0,
    });
foreach (int i in samba)
{
    label1.Text += i;
}

第一次通过循环时,您将打印出 position 的项目1,即2. 您第二次在位置打印出项目2,即0。然后你打印出0四次位置的项目,那就是1,等等。

于 2012-12-18T20:12:50.787 回答
3

你可能想要的:

label1.Text = string.Join("", samba);
label1.Text += string.Join("", samba); // if the leading 1 is correct 

你在做什么:

对于 samba 中的每个值 n
  在 samba 中附加 index=n 处表示的值

虽然我不确定前导 1 (我201111002111111111在运行你的代码时得到),但我猜它是在label1.Text此代码执行之前。

于 2012-12-18T20:10:16.060 回答