当前位置:编程学习 > C#/ASP.NET >>

生成数字,左边补0,效率问题,大家来看

生成,左边补0
0000
0001
0002
0003
0004
至到
9999

我的程序
            for (int number = 0; number <= 9999; number++)
            {
                if (number > 1000)
                {
                    this.textBox3.Text += number.ToString() + "\r\n";
      
                    
                }
                else
                {
                    this.textBox3.Text += number.ToString().PadLeft(length, '0') + "\r\n"; //位数不够时从左笾开始用0补
                }

            }

如上: 从 0000 开始到 9999生成完花了  两分多钟,怎么会这么慢? --------------------编程问答-------------------- right('0000'+number.tostring(),4) --------------------编程问答-------------------- 时间都花在拼字符串上了 --------------------编程问答-------------------- 不用加if判断,直接这样即可

this.textBox3.Text += number.ToString().PadLeft(4, '0')+ "\r\n";  --------------------编程问答-------------------- 慢就对了,使用StringBuilder效率拼接字符串,效果会大大提高 --------------------编程问答-------------------- ui更新了10000次,不慢才怪 --------------------编程问答-------------------- 楼主的方法既麻烦又慢,一行程序就搞定了而且要快几百倍,

  for (int number = 0; number <= 9999; number++)
   {
   this.textBox3.Text += number.ToString("d4") + "\r\n";
}

或者:

  for (int number = 0; number <= 9999; number++)
   {
   this.textBox3.Text += String.Format("{0:d4}\r\n",number);
} --------------------编程问答-------------------- 将小于1000的整数转换为
0001
0002
0003
0004
0005
.....
0999
1000

string xx0 = "999".PadLeft(4, '0');//0999
string xx1 = "1".PadLeft(4, '0');//0001


select right((10000+86),4)
--------------------编程问答-------------------- 这样最快,

StringBuilder sb=new StringBuilder();
  for (int number = 0; number <= 9999; number++)
   {
    sb.AppendFormat("{0:D4}\r\n",number);
}

this.textBox3.Text +=sb.ToString();
--------------------编程问答--------------------
引用 5 楼  的回复:
ui更新了10000次,不慢才怪
--------------------编程问答-------------------- 同意stonespace 的观点,顶一个 --------------------编程问答--------------------
引用 9 楼  的回复:
引用 5 楼  的回复:
ui更新了10000次,不慢才怪

就是这个里,另外stonespace在6楼的方法也是很慢的,同样刷新了10000次界面,界面的刷新开销非常大。 --------------------编程问答-------------------- 使用StringBuilder ,效率快,因为它是直接在后面追加的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,