用循环进行了5000次的相加,最后量上M,相加速度有点慢 超10秒。我用了stringBuilder不知道还有别的方法不
例子
 for (int i = 0; i < 5000; i++)
            
                strB.Append(string.Format(@"<div ae=""{3}"" ab=""{4}"" ac=""{2}"" {7}><div {6}><input type=""checkbox"" value=""{0}"" id=""cbxP{0}"" name=""p{2}"" ab=""{4}"" ae=""{3}"" ac=""{2}"" onclick=""SelectChap(this);"" {5}>{1}</div></div>"
                    , arrChapId[i], arrTitle[i], arrCourseId[i], arrExamId[i], arrBlockId[i]
                    , this._SelectedChap.IndexOf("[" + arrChapId[i] + "]") >= 0 ? " checked" : ""
                     , @"class=""TempP""", @"class=""TempX"""));
            }

解决方案 »

  1.   

    StringBuilder初始化的时候给一个值的
      

  2.   

    StringBuilder strB=new StringBuilder(500*80); 
    这个是设置strB的初始空间大小。另外你这个应该不是strB的字符串的累加的问题。而是里面的string.Format里面进行了太多计算。
      

  3.   


    这个代码优化空间很大
    Append(string.Format(...)) 可改写成AppendFormat(...)
    Format里的很多参数都是可以提取到字符串里的
    做这两件事,应该能快很多。如果非常追求效率,可以把Append换成很多Append,不用{0}的形式,又能快很多
      

  4.   

    StringBuilder strB=new StringBuilder();
    strB.AppendFormat("{0},{1}","A","B");  用 stringbuilder的 appendformat() 
      

  5.   

    StringBuilder str=new StringBuilder();
    strB.AppendFormat("{0},{1}","A","B");  用 stringbuilder的 AppendFormat()
      

  6.   

    原来我这上面用了replace
    for (int i = 0; i < 5000; i++)
    if (UpExamId != arrExamId[i])
                    {
                        strB.Replace("TempC", "CLL10");
                        if (UpBlockId != arrBlockId[i])
                        {
                            strB.Replace("TempE", "CLL7");
                            strB.Replace("TempS", "2");
                            strB.Replace("TempX", "CCB");
                        }
                        else
                        {
                            strB.Replace("TempE", "CLL5");
                            strB.Replace("TempS", "0");
                            strB.Replace("TempX", "CCBX");
                        }
                    }
                    else
                    {
                        strB.Replace("TempC", "CLL9");
                    }strB.Append(string.Format(@"<div ae=""{3}"" ab=""{4}"" ac=""{2}"" {7}><div {6}><input type=""checkbox"" value=""{0}"" id=""cbxP{0}"" name=""p{2}"" ab=""{4}"" ae=""{3}"" ac=""{2}"" onclick=""SelectChap(this);"" {5}>{1}</div></div>"
    , arrChapId[i], arrTitle[i], arrCourseId[i], arrExamId[i], arrBlockId[i]
    , this._SelectedChap.IndexOf("[" + arrChapId[i] + "]") >= 0 ? " checked" : ""
    , @"class=""TempP""", @"class=""TempX"""));
    }