• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    C#使用string和StringBuilder哪個性能更好

    C#的字符串拼接,最常用的就是直接相加,俗稱字符串拼接。可是,這種拼接和StringBuilder的拼接到底哪一個機能更好呢?日常平凡該利用哪一種寫法呢?

    方式/步調

    1. 1

      1)C#中的字符串有個特征,一旦初始化之后就不會再更改了。日常平凡給string變量賦值一次后,再次利用代碼可以直接點竄,可是,素質上是從頭建立了一個新的字符串。是以,點竄幾多次就會建立幾多個字符串。

      2)StringBuilder則是直接在原字符串上點竄值。

      3)建立一個節制臺應用程序,在Program類的下方添加一個新的靜態類StringHelper,并在頂部引入System.Text定名空間

    2. 2

      在StringHelper類中添加一個靜態方式UseString,領受兩個參數,在方式內部利用字符串拼接,最終返回拼接的成果字符串

    3. 3

      在StringHelper類中添加一個靜態方式UseStringBuilder,領受兩個參數,在方式內部利用StringBuilder拼接,最終返回拼接的成果字符串。

      注重:StringBuilder需要ToString之后轉換為字符串

    4. 4

      在Program.cs文件的頂部添加定名空間引用:using System.Diagnostics; 目標是利用Stopwatch,用于記實方式挪用的耗時

    5. 5

      在Main方式中,建立一個Stopwatch,并在挪用UseString方式前開啟,在挪用完當作后竣事,最后輸出這個方式的耗時,可是為毫秒。從成果可以看出,字符串拼接5萬次,耗時8秒。

      注重:因為機械機能和當前忙碌狀況紛歧樣,執行成果的耗時可能有差別

    6. 6

      在Main方式中挪用UseStringBuilder方式,同樣的體例記實這個方式挪用的耗時。從成果可以看出,這個體例同樣的拼接5萬次字符串,耗時才7毫秒

    7. 7

      利用Stopwatch記實兩個方式的挪用,并輸出成果。可以看出,StringBuilder的耗時比string的耗時快上千倍。

      是以,日常平凡若是拼接大量字符串,出格是輪回次數良多的時辰,利用StringBuilder可以提高機能。若是拼接的次數很少,兩者的機能差距不較著

    • 發表于 2019-04-23 22:02
    • 閱讀 ( 577 )
    • 分類:其他類型

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆