C# - リスト(配列)をカンマ区切りの文字列に結合する

リスト(配列)をカンマ等で結合した文字列にするには、string.join()メソッドを使用します。

リスト(配列)の結合方法

string.join()メソッド の引数に 区切り文字 と 対象のリスト を渡します。区切り文字 は複数文字指定できますが、 1文字だけのときは シングルクォーテーション(')で括ります。
string 区切り文字で連結した文字列 = string.Join('区切り文字', Listや配列);
string 区切り文字列で連結した文字列 = string.Join("区切り文字列", Listや配列);
次のコードは数値のリストをカンマ区切りの文字列にします。
using System.Collections.Generic;

// カンマ区切りの文字列にしたいリスト
var dataList = new List<int>() { 100, 200, 300 };

// カンマ区切りの文字列にする
var csv = string.Join(',', dataList);

// 結果 = "100,200,300"
System.Console.WriteLine(csv);
サンプルコードの実行結果
サンプルコードの実行結果

ダブルクォーテーション(")付きで結合する

区切り文字に「","」を指定します。先頭と末尾には区切り文字が付与されないため、join()メソッドの結果に付け加えます。

次のサンプルコードはリストの内容をダブルクォーテーション(")付きのカンマ区切文字列にします。

using System.Collections.Generic;

// カンマ区切りの文字列にしたいリスト
var dataList = new List<string>() { "date1", "data2", "data3" };

// ダブルクォーテーション(")で括ったカンマ区切りの文字列にする
var csv = string.Join("\",\"", dataList);

// 結果 = date1","data2","data3
System.Console.WriteLine(csv);

// 先頭と末尾にダブルクォーテーションを付ける
csv = '"' + csv + '"';

// 結果 = "date1","data2","data3"
System.Console.WriteLine(csv);
サンプルコードの実行結果
サンプルコードの実行結果

データ内のダブルクォーテーション(")等を置換したい場合は、Linq の Select メソッド等を使用します。

次のサンプルコードはリスト内のダブルクォーテーション(")を置換した配列を作成しています。

using System.Collections.Generic;
using System.Linq;

// ダブルクォーテーション(") と NULL を含む文字列のリスト
var dataList = new List<string>() { "---\"---", null, "***\"***" };

// ダブルクォーテーションを置換した配列を作る(null対応)
var newArray = dataList.Select(value => value?.Replace("\"", "\"\"")).ToArray();
サンプルコードの実行結果
サンプルコードの実行結果

参考資料

検証環境