はじめに
カンマ区切りで出力するプログラムは、プログラミングの入門者に対してロジックを考える訓練の一歩目となる課題だと思います。
参照:ひと区切りつけましょう
string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++)
csv += data[i] + ",";
Console.Write(csv);
//A,B,C,
これだと余分なカンマが出力されてしまいます。
末尾カンマを削除
末尾カンマを削除する方法は幾つかあります。
//ループ内でカンマ追記判定
string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++){
if(i!=0) csv += ",";
csv += data[i];
}
Console.Write(csv);
//A,B,C
//ループ後にカンマ削除
string[] data = {"A","B","C"};
string csv = "";
for(int i=0; i<data.Length; i++){
csv += data[i] + ",";
}
csv = csv.Substring(0, csv.Length-1);
//csv = csv.TrimEnd(','); //C#ならTrimEndでもいい
Console.Write(csv);
//A,B,C
//ループ中にカンマ文字列定義
string[] data = {"A","B","C"};
string csv = "";
string delimiter = "";
for(int i=0; i<data.Length; i++){
csv += delimiter + data[i];
delimiter = ",";
}
Console.Write(csv);
//A,B,C
//先に先頭の値をセット
string[] data = {"A","B","C"};
string csv = data[0];
for(int i=1; i<data.Length; i++){
csv += "," + data[i];
}
Console.Write(csv);
//A,B,C
ライブラリを活用する場合
//String.Joinメソッド
string[] data = {"A","B","C"};
string csv = String.Join(",",data);
Console.Write(csv);
//A,B,C
CSVについて
CSV は「comma-separated values」だからカンマ区切りであり、タブ区切りなら 「tab-separated values」で TSV で拡張子は .tsvだろとかって知ったかぶりをすると微妙な空気になるかも知れません。
Comma-Separated Values – Wikipedia
タブ区切りされた tab-separated values (TSV)や、半角スペース区切りされた space-separated values (SSV) などがあり、これらをまとめて character-separated values (CSV)、delimiter-separated values とも呼ばれることも多い。