CSV文字列処理

CSV string handling

出典: link タグ:c#csv 更新時間:

  問題

CSV 文字列(擬似コード)を作成する典型的な方法:

  1. CSVコンテナオブジェクトを作成します(C#でStringBuilderのように)。
  2. それぞれの後にコンマを追加する文字列をループします。
  3. ループの後、余分なカンマを削除します。

コードサンプル:

 public string ReturnAsCSV(ContactList contactList)
{
    StringBuilder sb = new StringBuilder();
    foreach (Contact c in contactList)
    {
        sb.Append(c.Name + ",");
    }

    sb.Remove(sb.Length - 1, 1);
    //sb.Replace(",", "", sb.Length - 1, 1)

    return sb.ToString();
}
 

私はコンテナが空であるかどうかをチェックしてコンマを追加するという考えが好きですが、各オカレンスで文字列の長さをチェックする必要があるため、より多くの処理を意味しませんか?

私は、最後のコンマを削除するためのより簡単な/よりクリーンな/より効率的な方法があるはずだと感じています。何か案は?

  ベストアンサー

LINQ to Objects を使用できます。

 string [] strings = contactList.Select(c => c.Name).ToArray();
string csv = string.Join(",", strings);
 

明らかにそれはすべて1行で行うことができますが、2つについては少し明確です。

  同じタグがついた質問を見る

c#csv