他的想法是用StringBuilder去直接改動內存,而不進行一個拼接會更加直接有效的去運行,速度也會更快。
由於認為這個東西有點意思,所以我就想做個對照來看,是不是自己老了記錯了事情,特別是我是做服務端的,效率才是我考慮的,而內存在2014年的今天,難道白菜還不比內存貴?呵呵!
下面是一個簡單的代碼,還有結果圖,我沒什么文化,所以就不繼續說明了,有想法的能夠評論指點一下,謝謝!
class Program { static void Main(string[] args) { Console.WriteLine("1000萬次運算:"); DateTime dt = DateTime.Now; xxx xxx=new xxx(); const int testNum = 10000000; StringBuilder strbuilder = new StringBuilder(); strbuilder.Append("M"); for (int i = 0; i < testNum; i++) { strbuilder.Append(i.ToString(),0,i.ToString().Length); xxx.text = strbuilder.ToString(); strbuilder.Remove(0, strbuilder.Length-1); } Console.WriteLine("StringBuilder:" + (DateTime.Now - dt).Ticks); Console.WriteLine("\r\n"); strbuilder.Remove(0, strbuilder.Length); strbuilder.Clear(); strbuilder = null; dt = DateTime.Now; for (int i = 0; i < testNum; i++) { xxx.text = i+"M"; } Console.WriteLine("String拼接:" + (DateTime.Now - dt).Ticks); Console.WriteLine("\r\n"); dt = DateTime.Now; for (int i = 0; i < testNum; i++) { xxx.text = string.Format("%Sm", i.ToString()); } Console.WriteLine("String.Format拼接:" + (DateTime.Now - dt).Ticks); Console.ReadLine(); } } public class xxx { public string text { get; set; } }

最后結論就是,簡單的拼接會比不論什么函數和方法來得有效!!歡迎拍磚!!