2013-09-27 3 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 + = х + "";' – hallaji

+1

Используйте 'StringBuilder' и назначьте' Label1 .Text' после цикла. – Pratik

+0

@Pratik: Не нужно 'StringBuilder' здесь !!! [Я должен использовать StringBuilder везде, правильно? Нет, его нет !!] (http://yoda.arachsys.com/csharp/stringbuilder.html) –

ответ

1

Вместо:

Label1.Text = x+""; 

Do:

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

Или вместо того, чтобы определить значение string вне while и добавить его в эту 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 + = to append: » , –

0

Вы можете использовать строку строитель

попробовать это:

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

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

Пожалуйста используйте код, как показано ниже, вы должны назначить новый id to 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++; 
} 
Смежные вопросы