我有一个 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/