用循环进行了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"""));
}
例子
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"""));
}
解决方案 »
- EnumChildWindows遍历问题。。。???
- 求一高效算法取交集(顺序)。
- 刚刚看到人发了条计算的,好吧 那我也来一条。。
- 开启进程问题 高手大虾快来救命 急急急(100分)!!!
- 使用飞信的VMDONTNET为什么一用到datatable就出错呢?
- 请问如何逆时针画圆弧?
- 请教一个VS2008无法调试的问题
- 100分请教:关于在Remoting中把服务器端的异常信息串行到客户端的问题(分不够再加)
- CS0234: 命名空间“System”中不存在类型或命名空间名称“Dada”是什么意思?
- 如何用C#实现文件及文件夹复制,且显示复制的进度条
- 大家好,我问个安装包的
- 请高手帮忙解决下难题,菜鸟在线等,急急
这个是设置strB的初始空间大小。另外你这个应该不是strB的字符串的累加的问题。而是里面的string.Format里面进行了太多计算。
这个代码优化空间很大
Append(string.Format(...)) 可改写成AppendFormat(...)
Format里的很多参数都是可以提取到字符串里的
做这两件事,应该能快很多。如果非常追求效率,可以把Append换成很多Append,不用{0}的形式,又能快很多
strB.AppendFormat("{0},{1}","A","B"); 用 stringbuilder的 appendformat()
strB.AppendFormat("{0},{1}","A","B"); 用 stringbuilder的 AppendFormat()
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"""));
}