zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    存储过程分页
    连接数据库
    绑定数据
    有关最近做的项目中用到的日期控件
    循环累加 由for _foreach
    打印gridview 中的所有内容
    list<>操作
    创建表两个主键外键~~~
    连接数据库sql server 2005
    WPF控件编程
  • 原文地址:https://www.cnblogs.com/davidgu/p/1540634.html
Copyright © 2011-2022 走看看