リスト(配列)の結合方法
string.join()メソッド の引数に 区切り文字 と 対象のリスト を渡します。string 区切り文字で連結した文字列 = string.Join('区切り文字', Listや配列);
string 区切り文字列で連結した文字列 = string.Join("区切り文字列", Listや配列);
- joinメソッドはstringクラスの静的メソッドです。
- 数値などのリストも指定できます。
- 空のリストを渡すと、空文字列(string.Empty)が返ります。
- null を渡すと、例外「System.ArgumentNullException」が発生します。
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);

データ内のダブルクォーテーション(")の対応
CSV形式のデータにおいて ダブルクォーテーション(") はデータの開始と終了を表します。データ中のダブルクォーテーションと区別するため、データ中のダブルクォーテーションは2つ並べて「""」で表します。データ中のダブルクォーテーションを「""」に置換したい場合は、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();

参考資料
検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.11.16
- Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.2251 Experience: Windows Feature Experience Pack 120.2212.4180.0