2012-04-26 2 views
2

Я написал удобный небольшой класс для создания CSV-файлов из разных источников данных. Например, я могу передать в DataTable или коллекцию объектов IEnumerable (каждый из которых представляет собой «строку»), и он будет точно избегать и делить файл по мере необходимости. Кажется, что это работает очень хорошо, но я пытаюсь придумать лучший способ заняться финальной частью.Любой простой способ экспортировать данные в несколько форматов?

Я хочу разрешить возможность устанавливать стандартные форматы для каждого типа, которые выводятся в CSV. Например, я хотел бы указать конкретный формат даты, используемый для всех DateTimes. Или, альтернативно, одно из ваших полей - это десятичное число, и вы хотите, чтобы он был отформатирован как валюта на выходе в CSV. (таким образом, в основном, возможность определять глобальный форматтер для данного типа данных и/или конкретный форматировщик для определенного столбца в данных (то есть только поле «цена», отформатированное в валюте))

Я выкопал .NET Framework, и я не смог найти ничего подобного. Это просто что-то, что мне нужно, чтобы катиться самостоятельно? И если есть какие-то полезные классы, которые я мог бы посмотреть в этом квесте?

спасибо!

+0

Вы проверили CultureInfo –

+0

@ shiplu.mokadd.im - Как это должно помочь? – Oded

+0

Форматы, специфичные для локали, предоставляются автоматически культуинфо. Эти данные устанавливаются на панели управления. –

ответ

3

Это что-то, что мне нужно, чтобы катиться самостоятельно?

Да.

Есть ли какие-либо полезные классы, которые я могу посмотреть в этом квесте?

Не класс, а интерфейс - IFormatProvider.

Вам необходимо реализовать его для всех типов, которые вы хотите отформатировать и передать в своей реализации, с различными функциями форматирования.

Взгляните на this код проекта для реализации и this Вопрос и ответы на некоторые вопросы.

Вы также можете ознакомиться с интерфейсом IFormattable, поскольку речь идет о форматировании объектов в строковых представлениях.

+0

отлично, спасибо за помощь ... похоже, что в структуре фактически есть две наиболее распространенные функции для IFormatProvider в System.Globalization.DateTimeFormatInfo и System.Globalization.NumberFormatInfo, я подозреваю, что это поможет немного с этим усилием – snappymcsnap

Смежные вопросы