2012-04-26 7 views
2

私は、さまざまなデータソースからCSVファイルを生成するのに便利な小さなクラスを作成しました。たとえば、DataTableまたはIEnumerableオブジェクトのコレクション(それぞれが効果的に '行'を表す)を渡すことができ、必要に応じてファイルを忠実にエスケープして区切ります。それはかなりうまくいくようですが、私は最後の部分に取り組むための最善の方法を考えようとしています。データを複数の形式に簡単にエクスポートできますか?

私は、CSVに出力される各タイプのデフォルトフォーマッタを設定できるようにします。たとえば、すべてのDateTimeに使用するLocale固有の日付書式を指定できるようにしたいと考えています。または、おそらくあなたのフィールドの1つが10進数で、CSVへの出力で通貨としてフォーマットされることを希望します。 (つまり、基本的に、特定のデータ型用のグローバルフォーマッタ、およびデータ内の特定の列の特定のフォーマッタを定義する機能(つまり、価格フィールドを通貨形式に変換します))

私は掘りました.NETフレームワークと私はこのようなものを見つけることができませんでした。私は自分自身でロールする必要があるこれは何ですか?もし私がこのクエストで見るかもしれない有益なクラスがあれば?

ありがとうございました!

+0

CultureInfo –

+0

@ shiplu.mokadd.imをチェックしましたか?どのように役立つはずですか? – Oded

+0

Locale固有の形式は、cultureinfoによって自動的に提供されます。これらの情報は、コントロールパネルで設定します。 –

答えて

3

これは私自身でロールする必要がありますか?

はい。

私がこのクエストで見る可能性のあるクラスはありますか?

クラスではなく、インターフェイス - IFormatProviderです。

フォーマットするすべてのタイプに対して実装し、実装をさまざまなフォーマット関数に渡す必要があります。

実装のためにthisコードプロジェクトの例を見てください。thisですので、いくつかの注意点については質問と回答が必要です。

IFormattableインターフェイスについては、オブジェクトを文字列表現に書式設定する方法について具体的に説明します。

+0

優れている、助けてくれてありがとう...フレームワークが実際にはSystem.Globalization.DateTimeFormatInfoとSystem.Globalization.NumberFormatInfoのIFormatProviderの2つの最も一般的なインプリメンテーションを持っているように見えますが、 – snappymcsnap

関連する問題