清空StringBuilder的三種方法及效率


清空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方法比較效率。
此次測試是本人的簡單測試,如有不同意見請留言,共同學習探討!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM