String与StringBuilder - 字符串的轻重量级

有人经常问String和StringBuilder有什么区别,啥时候用什么呢?

其实,如果是简单的字符串应用的话,一般都用string。
 
下面我们来举个例子:
string  strEmail  =   "" ;

strEmail 
+=   " <tr><td> "   +  xxxxx  +   " </td> " ;
strEmail 
+=   " <td> "   +  yyyyy  +   " </td> " ;
strEmail 
+=   " <td> "   +  xxxxx +   " </td> " ;
strEmail 
+=   " <td> "   +  yyyyy  +   " </td></tr> " ;

以上属于比较丑陋的代码了,像这种情况,至少,我们应该利用一下C#中的 字符串换行符号@和string.Format吧。
可以这样写:
strEmail  =   "" ;
strEmail 
+=   string .Format( @"
<tr>
<td>{0}</td>
<td>{1}</td>
<td>{2}</td>
<td>{3}</td>
</tr>
" ,
xxxxx,
yyyyy,
xxxxx,
yyyyy);

但是以上写法还不是最好的,这个时候我们想到了StringBuilder。
因为在比较重量级的字符串拼接的场景下,最好使用StringBuilder。
新的写法如下:
var sbEmail  =   new  StringBuilder( @" <table border=""1"">
<tr>
<td>Header A</td>
<td>Header B</td>
<td>Header C</td>
<td>Header D</td>
</tr>
" );

// items只是一个特定的ArrayList,用于循环添加表格的行,可以不必理会
foreach  (var item  in  items)
{
  sbEmail.AppendFormat(
@"
  <tr>
  <td>{0}</td>
  <td>{1}</td>
  <td>{2}</td>
  <td>{3}</td>
  </tr>
" ,
  xxxxx,
  yyyyy,
  xxxxx
  yyyyy);
}

sbEmail.AppendLine(
" </table> " );

我们需要注意的是: AppendFormat和AppendLine

转载于:https://www.cnblogs.com/davidgu/archive/2009/08/06/1540634.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值