2

さまざまなデータ ソースから CSV ファイルを生成する便利な小さなクラスを作成しました。たとえば、DataTable または IEnumerable オブジェクトのコレクション (それぞれが実質的に「行」を表す) を渡すと、必要に応じてファイルを忠実にエスケープして区切ります。かなりうまくいっているようですが、最後のピースに取り組む最善の方法を考えようとしています。

CSV に出力される Type ごとにデフォルトのフォーマッタを設定できるようにしたいと考えています。たとえば、すべての DateTime に使用する Locale 固有の日付形式を指定できるようにしたいと考えています。または、フィールドの 1 つが 10 進数であり、CSV への出力で通貨として書式設定する必要がある場合もあります。(つまり、基本的に、特定のデータ型に対してグローバル フォーマッタを定義する機能、および/またはデータ内の特定の列に対して特定のフォーマッタを定義する機能 (つまり、通貨にフォーマットされた「価格」フィールドのみ))

私は .NET フレームワークを掘り下げましたが、このようなものを見つけることができませんでした。これは私が自分で転がす必要があるものですか?もしそうなら、このクエストで私が見るかもしれない有用なクラスはありますか?

ありがとう!

4

1 に答える 1

3

これは私が自分で転がす必要があるものですか?

はい。

このクエストで調べると便利なクラスはありますか?

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

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

実装のためのこのコード プロジェクトの例と、いくつかの警告については、このSO の質問と回答をご覧ください。

IFormattableまた、特にオブジェクトを文字列表現にフォーマットするためのインターフェイスを確認することもできます。

于 2012-04-26T19:11:47.737 に答える