LoginSignup
2
4

More than 5 years have passed since last update.

C#の単純な文字列連結で最も高速な方法は?

Last updated at Posted at 2017-07-07

文字列連結の方法はケースバイケースで使い分けますが、単純な場合にどれが早いのかと疑問に思ったので計測。

コード

var c = 10000000;
var sw = new System.Diagnostics.Stopwatch();

// StringBuilder
sw.Start();
for (int i = 0; i < c; i++)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("%").Append(i).Append("%");
    var str = sb.ToString();
}
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());

// +演算子
sw.Restart();
for (int i = 0; i < c; i++)
{
    var str = "%" + i + "%";
}
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());

// string.Format
sw.Restart();
for (int i = 0; i < c; i++)
{
    var str = string.Format("%{0}%", i);
}
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());
return;

出力

00:00:01.8321544
00:00:01.6269853
00:00:02.1980389

速度は +演算子 > StringBuilder > string.Format() でした。
単純な処理の場合はつべこべ言わずに+で繋げておけという感じでしょうか。
差がごくわずかなのでstring.Format()で可読性を取るのもアリでしょう。

あくまで単純な例なので実用上は実際に計測してみてください。

2
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4