1

私はC#を学ぼうとしています。私が見つけたチュートリアルの多くはコンソールに書き込みますが、Webアプリのコンテキストでそれを練習し、何らかのコントロール(文字、ラベルなど)でページに結果を書き込みたいと思います。 。私は単純なFizzBu​​zzプログラムから始めていますが、何らかの理由で、ループの最後の番号(99)のみを出力しています。ページに各反復を書き出す方法について何かアイデアはありますか?前もって感謝します

私のコード:

<asp:Literal ID="myLit" runat="server"></asp:Literal>

namespace practice
{
    public partial class fizzbuzz_csharp : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 100; i++)
            {
                myLit.Text = i.ToString();
            }
        }
    }
}
4

4 に答える 4

5

あなたはテキストをコントロールに直接書き込んでいて、それを追加していません。ループの最後に、以前のすべての値が上書きされ、最後の値のみが表示されます

に変更します

MyLit.Text += i.ToString + "<BR />"
于 2013-01-13T23:16:36.887 に答える
3

ループ内Textのコントロールのプロパティは常に上書きされます。Literalそのため、最後だけが表示されます。代わりに使用できますListBox

for (int i = 0; i < 100; i++)
{
    myListBox.Items.Add(i.ToString());
}

<br />Webでの良い習慣ではありませんが、各行を折り返すために追加することもできます。

for (int i = 0; i < 100; i++)
{
    myLit.Text += i.ToString() + "<br />";
}
于 2013-01-13T23:15:43.033 に答える
2

ループの各反復で上書きmyLit.Textしているため、最終的な値は"100"です。代わりに追加しmyLit.Textます。効率を上げるために、これはおそらくaのようなものを使用しSystem.Text.StringBuilder、最終結果をに割り当てることによって最もよく行われmyLit.Textます。

于 2013-01-13T23:16:08.250 に答える
0

ループ内を次のように変更します

myLit.Text += i.ToString() + "<br />";
于 2013-01-13T23:25:08.057 に答える