清空StringBuilder的三种方法及效率

来源(llsh2010的日志 - 网易博客)

From: http://blog.163.com/llsh2010@126/blog/static/1691895692011102524112201/

清空StringBuilder的三种方法及效率

2011-11-25 15:02:18| 分类: C# 知识 | 标签:清空 stringbuilder 效率 |字号 订阅

大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或empty的方法。那用什么方法呢?在网上搜了一下大概一下三种方法。

1、Remove

例:

StringBuilder val = new StringBuilder();
val.Append("....");
val.Remove(0,val.Length);//清空


2、Replace

StringBuilder val = new StringBuilder();
val.Append("....");
val.Replace(val.ToString(), "");//清空


3、Length

StringBuilder val = new StringBuilder();
val.Append("....");
val.Length = 0;//清空


对于这三种方法的效率简单做了一下测试,测了三次求的平均值

测试方法:

DateTime dt = DateTime.Now;
const int testNum = 1000000;
StringBuilder strbuilder = new StringBuilder();
for (int i = 0; i < testNum; i++)
{
    strbuilder.Append("test");
    strbuilder.Remove(0,strbuilder.Length);
}
Console.WriteLine("Rsemove:"+(DateTime.Now - dt).Ticks);


第一种用时间:366687

第二种用时间:1186734

第三种用时间:180010

可见还是使用length方法比较效率。

此次测试是本人的简单测试,如有不同意见请留言,共同学习探讨!

Link: http://www.asm32.net/article_details.aspx?id=5987


浏览次数 0 发布时间 2014-01-05 18:17:50 从属分类 C# 【评论】【 】【打印】【关闭
 
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | Python | 书签 | ASP.Net书签 | 京ICP备09029108号-1