C#:将自定义集合转储到csv文件的最简单方法

时间:2011-09-25 04:10:13

标签: c# serialization collections csv

我有一个班级

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

我有一个List<DevicePatchInfo>,它载有数据并绑定到数据网格。我想按一个按钮并将其序列化为csv文件。

显而易见的方法是:

  1. 在构造函数中使用csv路径创建StreamWriter。
  2. 通过反射读取DevicePatchInfo类的所有属性名称,并将其写为csv文件中的第一行。
  3. 使用foreach枚举列表。
  4. 读取列表中的每个项目,并使用逗号分隔所有项目值创建string.format。
  5. stream.write new string
  6. 完成所有操作后处理streamwriter。
  7. 哈夫!有没有更简单的解决方案?或者我应该只输入代码而不是这个。

2 个答案:

答案 0 :(得分:3)

使用开源FileHelpers library,它会为您执行此操作。

答案 1 :(得分:1)

您提出的解决方案几乎与您可以获得的金属接近。我建议您对标题进行硬编码而不是使用反射,因为您编写的类DevicePatchInfo是明确定义的。