c#怎样写,拼接字符串能够节省资源

风沙不去驼铃声 2009-01-13 02:07:26
新手
1
String s="";
for(int i=0;i<100;i++){
s=s+" 第"+i+"个字符串,";
}

2
StringBuilder strBud= new StringBuilder();
for(int i=0;i<100;i++){
strBud.Append(" 第"+i+"个字符串,") ;
}

以上娜中方式效率更高些。
或还有那种比较好的方法,请教高手
...全文
467 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DerekSuCn 2009-01-15
  • 打赏
  • 举报
回复
初始化时申请一个足够大的空间,然后所有的拼接就都在这个地址空间中。使用string “ s=s+" 第"+i+"个字符串,"; ”就这个语句 string对象就被重新构造了 N次。
StringBuilder strBud= new StringBuilder(1024*1024);
for(int i=0;i <100;i++){
strBud.Append(" 第"+i+"个字符串,") ;
}
yuanhuiqiao 2009-01-13
  • 打赏
  • 举报
回复
同意3楼的
chinawes 2009-01-13
  • 打赏
  • 举报
回复
看看《C#高级编程》第八章关于字符串介绍的就知道了。
  • 打赏
  • 举报
回复
还有其他较好的方法没有??


string.Format(" 第{0}个字符串,",i) 的 {0} 不太明白是什么意思?
  • 打赏
  • 举报
回复
StrinBuilder 本身构造是需要代价的,所以才建议少量用string.Concat
我姓区不姓区 2009-01-13
  • 打赏
  • 举报
回复
当然是用StringBuilder了
s=s+" 第"+i+"个字符串,";
这个每执行一次都要重新分配内存空间
  • 打赏
  • 举报
回复
如果是大量字符串拼接,用第二种方法

如果是少量的,用string.Concat,
尽量避免用 +,你那种可以用string.Format(" 第{0}个字符串,",i) ,或者strBud.AppendFormat((" 第{0}个字符串,",i)
CraxyMouse 2009-01-13
  • 打赏
  • 举报
回复
第二种效率高

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧