C#
パターン2: String.Concat / String.Join —配列を一発で結合
出典: C# 文字列結合のパフォーマンス完全比較(+ / Concat / StringBuilder / Format / 補間) — パターン2: String.Concat / String.Join —配列を一発で結合
// ✅パターン2: String.Concat / String.Join
string[] parts = { "Hello", ", ", userName, "さん。" };
string greeting = String.Concat(parts);
// CSVの1行を組み立てる時の本命
var values = new[] { "1001", "鈴木太郎", "2026-05-08", "12500" };
string csvLine = String.Join(",", values); // "1001,鈴木太郎,2026-05-08,12500"
// IEnumerable<T>も渡せる
var names = users.Select(u => u.Name);
string nameList = String.Join(", ", names); // "alice, bob, carol"
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「パターン2: String.Concat / String.Join —配列を一発で結合」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
7 件// ✅パターン1: +演算子(少数結合) string greeting = "Hello, " + userName + "さん。今日もよろしくお願いします。"; string filePath = baseDir + "\\" + fileName;未収録
パターン1: +演算子—静的な少数結合の本命
#d77b30cce8dc
// ❌ NG:ループで+=は性能爆発 string result = ""; foreach (var row in dt.Rows.Cast<DataRow>()) {未収録
パターン1: +演算子—静的な少数結合の本命
#6dedf46f8327
// ✅パターン3: StringBuilder(ループ向き) var sb = new StringBuilder(); foreach (var row in dt.Rows.Cast<DataRow>()) {未収録
パターン3: StringBuilder —ループ・可変長の正解
#c688eae43693
// ✅パターン4: String.Format(フォーマット指定向き) string template = "{0}さん、{1:yyyy/MM/dd}の請求は{2:N0}円です。"; string message = String.Format(template, userName, dueDate, amount); // → "鈴木太郎さん、2026/06/30の請求は12,500円です。"未収録
パターン4: String.Format —フォーマット指定向き
#820dcac33498
// ✅パターン5:文字列補間(C# 6以降) string message = $"{userName}さん、{dueDate:yyyy/MM/dd}の請求は{amount:N0}円です。"; // → "鈴木太郎さん、2026/06/30の請求は12,500円です。"未収録
パターン5:文字列補間$"..." — C# 6以降の本命
#db4711ab2df6
// ✅パターン6: Stopwatchで性能比較(10万回ループ) const int N = 100_000; var data = Enumerable.Range(0, N).Select(i => $"row{i}").ToArray();
▶ 実行可
性能比較— 10万回ループのStopwatch実測
#c95994787d0a
