C#的字符串拼接,最常用的就是直接相加,俗稱字符串拼接。可是,這種拼接和StringBuilder的拼接到底哪一個機能更好呢?日常平凡該利用哪一種寫法呢?
1)C#中的字符串有個特征,一旦初始化之后就不會再更改了。日常平凡給string變量賦值一次后,再次利用代碼可以直接點竄,可是,素質上是從頭建立了一個新的字符串。是以,點竄幾多次就會建立幾多個字符串。
2)StringBuilder則是直接在原字符串上點竄值。
3)建立一個節制臺應用程序,在Program類的下方添加一個新的靜態類StringHelper,并在頂部引入System.Text定名空間
在StringHelper類中添加一個靜態方式UseString,領受兩個參數,在方式內部利用字符串拼接,最終返回拼接的成果字符串
在StringHelper類中添加一個靜態方式UseStringBuilder,領受兩個參數,在方式內部利用StringBuilder拼接,最終返回拼接的成果字符串。
注重:StringBuilder需要ToString之后轉換為字符串
在Program.cs文件的頂部添加定名空間引用:using System.Diagnostics; 目標是利用Stopwatch,用于記實方式挪用的耗時
在Main方式中,建立一個Stopwatch,并在挪用UseString方式前開啟,在挪用完當作后竣事,最后輸出這個方式的耗時,可是為毫秒。從成果可以看出,字符串拼接5萬次,耗時8秒。
注重:因為機械機能和當前忙碌狀況紛歧樣,執行成果的耗時可能有差別
在Main方式中挪用UseStringBuilder方式,同樣的體例記實這個方式挪用的耗時。從成果可以看出,這個體例同樣的拼接5萬次字符串,耗時才7毫秒
利用Stopwatch記實兩個方式的挪用,并輸出成果。可以看出,StringBuilder的耗時比string的耗時快上千倍。
是以,日常平凡若是拼接大量字符串,出格是輪回次數良多的時辰,利用StringBuilder可以提高機能。若是拼接的次數很少,兩者的機能差距不較著
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!