2

こんにちは、10000 個のインデックスを持つ int[] x があり、このようなコードを使用してすべての値をテキスト ボックスの改行に入れていますが、私のコードはテキスト ボックスを埋めるのに少なくとも数分かかります。同じことをするより速い方法は?

for ( int x = 0; X < 10000; x++)
{
    textBox1.Text += randomNumber[x] + Environment.NewLine;
}
4

3 に答える 3

8

はい、次のようなものには文字列ビルダーを使用します。

StringBuilder builder = new StringBuilder(10000); 
for (int x = 0; x < 10000; x++)
{
    builder.AppendLine(randomNumber[x]);
}
textBox1.Text = builder.ToString();

そうしないと、新しいプログラマーにとってよくある落とし穴である「ひもで咳き込む」ことになります。 これは Joel Spolskyによる素晴らしいブログ投稿で、文字列と不変性に関する一般的な落とし穴について説明しています。

于 2013-09-09T20:15:29.460 に答える
2

randomNumberコレクションのサイズがそうであるかどうかは明らかではありませんが、そうである場合は、メソッド10000を使用できます。String.Join

textBox1.Text = string.Join(Environment.NewLine, randomNumber);

StringBuilderとにかく内部的に使用しますが、読む方が良いです。

于 2013-09-09T20:20:52.403 に答える
0

最初に文字列を作成してから、その値をテキスト ボックスに入力します (テキスト ボックスにテキストを 10,000 回追加するのではなく)。

于 2013-09-09T20:15:21.897 に答える