私はC#オブジェクトを持っていて、それをCSVファイルにエクスポートしたいプロジェクトに取り組んでいます。C#文字列を複数のCSV描画列に変換しますか?
輸出は次のようになりますオブジェクトのための素晴らしい作品:
Name Height Address FavoriteColor
---------------------------------
Debacle 6 feet 123 Hope St Yellow
Yarn 5 feet 321 Despair Blue
しかし:上記の例では
public class Person
{
public string Name { get; set; }
public string Height { get; set; }
public string Address { get; set; }
public string FavoriteColor { get; set; }
}
、私が持っているCSVコードは以下のようなファイルをエクスポートします私はそれが私に逆行するDOに複雑さを加えようとします:
public class Person
{
public string Name { get; set; }
public string Height { get; set; }
public string Address { get; set; }
public string FavoriteColor { get; set; }
public List<string> Hobbies { get; set; }
}
出力は次のようになります。
Name Height Address FavoriteColor Hobbies
------------------------------------------------
Debacle 6 feet 123 Hope St Yellow System.Collections.Generics.List<string>
Yarn 5 feet 321 Despair Blue System.Collections.Generics.List<string>
Hobbiesオブジェクトを印刷する代わりに、オブジェクトのタイプとメモリ位置を印刷します。
私はそれがリストから取得し、より多くのこのようなものをオフに印刷持つ方法を見つけようとしている:
Name Height Address FavoriteColor Hobbie1 Hobbie2 Hobbie3
----------------------------------------------------------------
Debacle 6 feet 123 Hope St Yellow reading writing otherstuff
Yarn 5 feet 321 Despair Blue yes no
をしかし、私は動的にこれらの列を生成する方法に空白をアップ来ています。 Listオブジェクトをカンマ区切りの文字列、辞書などに変更しましたが、目的の機能を取得できません。
C#で私が逃しているかもしれないトリックはありますか?
ありがとうございました!
オブジェクトをCSVに変換するために使用しているエクスポートコードを投稿できますか? –
あなたのToStringメソッドはあなたのPersonクラスのように見えますか?おそらく個々のアイテムを出力するためのループが必要なので、どのようにして 'Hobbies'というリストを出力しようとしていますか?例:Foreach(趣味のストリングホビー)。 – JohnG
値の間に**カンマ**を持つCSVを作成していません。値を列に並べる場合は、** PAD **にスペースを入れて値を整列させるか、または** TABS **で値を区切らなければなりません(これにはさらに調整が必要ですが、個々の値の長さに応じて)。いずれにしても、 'List'の値を持っていれば、 'String.Join("、 "、Hobbies.ToArray());'のようなコードを使って素早く出力することができます。 –