有人经常问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