C# 如何加快每个结果的速度

C# 如何加快每个结果的速度,c#,foreach,C#,Foreach,我正在制作一个Windows窗体应用程序,我想生成0到99999之间的数字。 我使用以下代码打印这些数字: private void button1_Click(object sender, EventArgs e) { int[] arr = Enumerable.Range(0, 99999).ToArray(); var sb = new StringBuilder(); foreach (int a in arr)

我正在制作一个Windows窗体应用程序,我想生成0到99999之间的数字。 我使用以下代码打印这些数字:

  private void button1_Click(object sender, EventArgs e)
    {
        int[] arr = Enumerable.Range(0, 99999).ToArray();
        var sb = new StringBuilder();
        foreach (int a in arr)
        {
            sb.AppendLine(a.ToString("000000"));
           // textBox3.Text += a.ToString("000000")+Environment.NewLine;
            textBox3.Text = sb.ToString();

        }
    }
但是打印所有的数字需要很多时间


有没有办法加快速度

在每次迭代中设置
文本框的文本。因此,文本框被重绘100000次。当然慢了

将文本的设置移动到循环外部:

foreach (int a in arr)
{
    sb.AppendLine(a.ToString("000000"));
}
textBox3.Text = sb.ToString();
因此,您只需在完成字符串编写后设置文本,并且文本框只重绘一次。

可能会有所帮助

 private void button1_Click(object sender, EventArgs e)
    {
        int[] arr = Enumerable.Range(0, 99999).ToArray();
        var sb = new StringBuilder();
        foreach (int a in arr)
        {
            sb.AppendLine(a.ToString("000000"));
           // textBox3.Text += a.ToString("000000")+Environment.NewLine;

        }
         textBox3.Text = sb.ToString();
    }
你试过这个吗

foreach (int a in arr)
{
    sb.AppendLine(a.ToString("000000"));
}
textBox3.Text = sb.ToString();

这种方法怎么样

    private void button1_Click(object sender, EventArgs e)
    {
        textBox3.Text = string.Join(Environment.NewLine, Enumerable.Range(0,99999).Select(x => x.ToString().PadLeft(6, '0')));
    } 

您正在每个循环中写入文本。在外面做一次是的,在外面做了之后它就开始工作了