C# 利用StringBuilder提升字符串拼接性能的小例子

 更新时间:2013年07月04日 15:18:09   作者:  
一个项目中有数据图表呈现,数据量稍大时显得很慢,在使用了StringBuilder后效果提升很明显,下面有例子

用Stopwatch分段监控了一下,发现耗时最多的函数是SaveToExcel

此函数中遍列所有数据行,通过Replace替换标签生成Excel行,然后将行数据累加赋值到一个字符串

复制代码 代码如下:

string excelString = "";
foreach(var item in list){
        excelString += string.Format("<row>....{0}</row>",list.Title);
}

看到这。。立马想起无数先烈们的警告、字符串拼接的内存操作原理等等。于是大手一挥,代码全删,改为如下形式
复制代码 代码如下:

string excelString = new StringBuilder();
foreach(var item in list){
      excelString.AppendFormat("<row>......{0}</row>",list.Title);
}

再次测试,效率立马提升了几十倍。之前8000行需要30s,现在只需要2s

相关文章

  • C#利用递归算法解决汉诺塔问题

    C#利用递归算法解决汉诺塔问题

    这篇文章主要为大家介绍了C#如何利用递归算法解决经典的汉诺塔问题,文中的示例代码讲解详细,对我们学习C#有一定帮助,需要的可以参考一下
    2022-04-04
  • 用Newtonsoft将json串转为对象的方法(详解)

    用Newtonsoft将json串转为对象的方法(详解)

    下面小编就为大家带来一篇用Newtonsoft将json串转为对象的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • C#多线程之Parallel类的用法

    C#多线程之Parallel类的用法

    这篇文章介绍了C#多线程之Parallel类的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C# winform程序读取文本中的值实例讲解

    C# winform程序读取文本中的值实例讲解

    在本篇文章中小编给大家分享了关于C# winform程序读取文本中的值的相关知识点,有兴趣的朋友们学习下。
    2019-06-06
  • C#实现从多列的DataTable里取需要的几列

    C#实现从多列的DataTable里取需要的几列

    这篇文章主要介绍了C#实现从多列的DataTable里取需要的几列,涉及C#针对DataTable操作的相关技巧,需要的朋友可以参考下
    2016-03-03
  • C#正则表达式(Regex类)用法实例总结

    C#正则表达式(Regex类)用法实例总结

    正则表达式的主要作用是验证字符串的值是否满足一定的规则,在页面输入数据验证方面的应用比较多,下面这篇文章主要给大家介绍了关于C#正则表达式(Regex类)用法的相关资料,需要的朋友可以参考下
    2022-08-08
  • 使用淘宝ip地址库查ip的示例

    使用淘宝ip地址库查ip的示例

    这篇文章主要介绍了使用淘宝ip地址库查ip的示例,需要的朋友可以参考下
    2014-03-03
  • C#使用smtp发送带附件的邮件实现方法

    C#使用smtp发送带附件的邮件实现方法

    这篇文章主要介绍了C#使用smtp发送带附件的邮件实现方法,可直接将string类型结果保存为附件,实例中备有相应的注释便于理解,需要的朋友可以参考下
    2014-11-11
  • C#使用Socket实现本地多人聊天室

    C#使用Socket实现本地多人聊天室

    这篇文章主要为大家详细介绍了C#使用Socket实现本地多人聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Winform启动另一个项目传值的方法

    Winform启动另一个项目传值的方法

    这篇文章主要介绍了Winform启动另一个项目传值的方法,通过调用进程来实现项目之间的传值,需要的朋友可以参考下
    2014-11-11

最新评论