c# - 使用 fileHelpers 库读取 CSV 中的列标题

标签 c# csv filehelpers

我有一个 CSV 文件,其中标题指示信息在详细信息行中显示的顺序。一个例子是:

COLUMN1,COLUMN2,COLUMN3
VALUE1,VALUE2,VALUE3

但也可能

COLUMN2,COLUMN3,COLUMN1
VALUE2,VALUE3,VALUE1

类看起来像这样

public class CSVImportLineItem
{
    public string Column1 {get; set;}
    public string Column2 {get; set;}
    public string Column3 {get; set;}
}

有没有办法(使用 FileHelpers )读取 header ,然后根据 header 顺序确定到属性的映射?

最佳答案

您必须专门使用 FileHelpers 库的任何原因?

  //Use File.ReadAllLines();
  List<string> lines = new List<string>() { "Column1, Column2, Column3", "1,2,3" };
  var cols = lines.First().Split(',');
  List<CSVImportLineItem> imported = new List<CSVImportLineItem>();
  var v = lines.Skip(1).ToList().Select(line =>
     {
       CSVImportLineItem item = new CSVImportLineItem();
       var values = line.Split(',');
       for (int i = 0; i < cols.Count(); i++)
       {
         item.GetType().GetProperty(cols[i].Trim()).SetValue(item, values[i], null);
       }
       return item;
     }).ToList();

关于c# - 使用 fileHelpers 库读取 CSV 中的列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14704642/

相关文章:

c# - 使用 Filehelpers 库忽略小数字段中的美元货币符号 ($)

c# - 使用自动映射器忽略未使用的属性

c# - 泛型中 Contains 方法的替代方案

c# - 生成公共(public) "ID Text"(如 Stackoverflow)

python - 如何使用 python 从该矩阵中删除行/列

mysql - JMeter将CSV中的所有记录插入sql数据库

c# - FileHelpers 嵌套引号和逗号 - 解析错误

c# - 我正在使用 OpenXML SDK 合并两个 Word 文档,但在将图像复制到标题中时得到损坏的文档

ios - 无法将csv文件附加到 objective-c 中的邮件

c# - 尝试写入空十进制值时出现 Filehelpers NullReferenceException