-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;
}

ループを初めて実行すると、位置 のアイテムが出力されます。1これは2です。22 回目は、 の位置でアイテムを印刷しています0。次に、 position の項目を04 回印刷すると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で表される値を追加します

201111002111111111先頭の1(コードを実行したときに取得)についてはわかりませんがlabel1.Text、このコードが実行される前にあると思います。

于 2012-12-18T20:10:16.060 に答える