日期:2014-05-20  浏览次数:20983 次

做一个十万次循环要17分钟之久?救命啊
程序功能:生成1到9999999之间数字+用户指定的字符串
                                int   i=0;
                                while   (i   <   100000)
                                {
                                        num   +=   10;
                                        str   +=   num.ToString()   +   "\r\n ";
                                        i++;
                                }//每行大约18个字符左右。num是7位以内整数
                                textBox1.text=str;

执行这个循环耗时18分钟,用for来写也差不多。我机器赛扬2.4g+512内存。
是不是也太慢了?求助高手们,是不是有更好的算法?


------解决方案--------------------
System.Text.StringBuilder sb = new System.Text.StringBuilder();
int i=0;
while (i < 100000)
{
num += 10;
sb.Append(num.ToString() + "\r\n ");
i++;
}//每行大约18个字符左右。num是7位以内整数
textBox1.text=sb.ToString();
------解决方案--------------------
你要明白为什么慢,不是因为循环,而是因为string的空间分配和拆箱
替代办法
1用StringBuilder
2直接写成文件