今天在.net framework 2.0 上看了一个StringBuilder类,然后自己又新自做了一个实验,效果太明显了。在操纵一个数组达到700个元素的字符串时,就可以改用StringBuilder了,因为它可以显著提高性能。便700以下,我建义还是用string 就行了。
下面贴出示例代码:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- namespace test2
- {
- class Program
- {
- static void Main(string[] args)//很好理解,就不写注释.
- {
- Int32 numberOfLoops =1000;
- int aproxLengthOfNewString;
- StringBuilder myBuilder = new StringBuilder();
- DateTime theDate;
- DateTime endDate = DateTime.Now.AddDays(numberOfLoops);
- string testString = "";
- DateTime startTime;
- TimeSpan interval;
- theDate = DateTime.Now;
- startTime = DateTime.Now;
- aproxLengthOfNewString = 11 * numberOfLoops;
- myBuilder.Capacity = aproxLengthOfNewString;
- while (theDate < endDate)
- {
- myBuilder.AppendLine(theDate.ToShortDateString());
- theDate = theDate.AddDays(1);
- }
- myBuilder.Replace("/", "-");
- testString = myBuilder.ToString();
- interval = TimeSpan.FromTicks(DateTime.Now.Ticks - startTime.Ticks);
- Console.WriteLine("StringBuilder:{0}", interval.TotalMilliseconds);
- Console.ReadLine();
- testString = "";
- theDate = DateTime.Now;
- startTime = DateTime.Now;
- while (theDate < endDate)
- {
- testString += theDate.ToShortDateString() + "/n";
- theDate = theDate.AddDays(1);
- }
- testString.Replace("/", "-");
- interval = TimeSpan.FromTicks(DateTime.Now.Ticks - startTime.Ticks);
- Console.WriteLine("String:{0}", interval.TotalMilliseconds);
- Console.ReadLine();
- }
- }
- }