2013-09-27 109 views
0

我剛剛開始使用ASP.NET,我無法顯示循環結果。例如:在asp.net中顯示循環結果

int x = 0; 
while (x < 10) { 

    Label1.Text = x+""; // This will show only result 9 (last result). 
    x++; 
} 

如何顯示所有結果,而不是隻有一個?

+1

'Label1.Text + = X + 「」;' – hallaji

+1

使用'StringBuilder'並分配'Label1循環後.Text'。 – Pratik

+0

@Pratik:這裏不需要'StringBuilder'! [我應該在任何地方使用StringBuilder,對嗎?沒有它沒有!!](http://yoda.arachsys.com/csharp/stringbuilder.html) –

回答

1

相反的:

Label1.Text = x+""; 

務必:

Label1.Text = Label1.Text + x; 
+0

沒有訣竅。謝謝:) – rootpanthera

0
int x = 0; 

while (x < 10) { 

    Label1.Text += x+""; // This will show "123456789". 
    x++; 
} 

您需要在每次迭代中添加文本。

0

如果你想向他們展示的列表:

Label1.Text += "," + x.ToString(); 

或者

Label1.Text = Label1.Text + "," + x.ToString(); 

無論哪種方式會產生的結果:

0,1,2,3,4,5,6,7,8,9 
1

這將只顯示結果9(最後結果)。

是的,因爲您在每次迭代中爲Label1.Text屬性指定新值。

試試這個,而不是;

int x = 0; 
while (x < 10) 
{ 

    Label1.Text = Label1.Text + x; 
    x++; 
} 

或替代定義stringwhile之外,添加這種int值的循環內並分配.Text值的循環等的室外;

int x = 0; 
string s = ""; 
while (x < 10) 
{ 

    s += x; 
    x++; 
} 
Label1.Text = s; 

或者使用StringBuilder如果你使用一個批號的效果會更好;

int x = 0; 
StringBuilder s = new StringBuilder(); 
while (x < 10) 
{ 

    s.Append(x); 
    x++; 
} 
Label1.Text = s.ToString(); 
+0

你真的需要使用一個StringBuilder來迭代10嗎? –

+0

@huMptyduMpty對於這種情況,不。但是,如果OP使用了大量的字符串連接,'StringBuilder'當然更好.. –

0

你應該累積每個元素的值,這樣的事情:

int x = 0; 
while (x < 10) { 
    Label1.Text = Label1.Text + x; 
    x++; 
} 
0
int x = 0; 

while (x < 10) { 

    Label1.Text += x.ToString(); 
    x++; 
} 
+0

您可以通過添加一個簡短的註釋來突出顯示特定的改變來改善這一點。例如,以「Use + = append:」開始。 –

0

你可以使用字符串生成器

試試這個:

StringBuilder sb = new StringBuilder(); 
    int x = 0; 

     while (x < 10) { 
      sb.Append(x); 
      sb.Append(" "); 
      x++; 
     } 
Label1.Text = sb.ToString(); 
0

請使用下面的代碼,你必須分配一個新的id在每次迭代中的Label1.Text。

int x = 0; 
    while (x < 10) 
    { 
     label1.Text += x.ToString(); 
     x++; 

    } 
0

替換

Label1.Text = x+""; 

Label1.Text = Label1.Text + x.ToString(); 
0

+=追加字符串變量,而不是更換所以,

int x = 0; 
while (x < 10) { 
    Label1.Text += x+" "; //append space to separate 
    x++; 
}