C #: самый простой способ вывести пользовательскую коллекцию в файл CSV - PullRequest
1 голос
/ 25 сентября 2011

У меня есть класс

public class DevicePatchInfo
{
  public string HostName { get; set; }
  public string PatchName { get; set; }
  public bool IsPresent { get; set; }   
}

У меня есть List<DevicePatchInfo>, который загружен данными и привязан к сетке данных.Я хочу нажать кнопку и сериализовать это в CSV-файл.

Очевидный способ сделать это:

  1. Создать StreamWriter с путем csv в конструкторе.
  2. Считать все имена свойств класса DevicePatchInfo через отражениеи запишите это в качестве первой строки в файле csv.
  3. Перечислите список с помощью foreach.
  4. Прочитайте каждый элемент в списке и создайте строку string.format с запятой, разделяющей все значения элемента.
  5. stream.write новой строки
  6. Утилизируйте streamwriter, когда все готово.

Huf!Есть ли более простое решение для этого?или я должен был просто набрать код вместо этого.

Ответы [ 2 ]

3 голосов
/ 25 сентября 2011

Используйте библиотеку FileHelpers с открытым исходным кодом , которая сделает это за вас.

1 голос
/ 25 сентября 2011

Ваше предлагаемое решение почти настолько близко к металлу, насколько вы можете получить.Я бы посоветовал вам жестко закодировать заголовки вместо использования отражения, поскольку класс, который вы пишете, DevicePatchInfo, четко определен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...