将CSV读取到自定义对象时出现CSVHelper问题

时间:2016-03-18 12:14:25

标签: c# csv csvhelper

我尝试将CS​​V文件读入我的自定义对象,但每次收到错误消息时都说这些字段不存在。但是,它们确实存在。

这是我的代码:

public class Order
{
    public string isin { get; set; }
    public double price { get; set; }
}

class OrderMap : CsvClassMap<Order>
{
    [System.Obsolete("use CreateMap", true)]
    public override void CreateMap()
    {
        Map(m => m.isin).Index(0);
        Map(m => m.price).Index(1);
    }
}

static void Main(string[] args)
{
    StreamReader file = new StreamReader(@"data\1\my_file.csv");
    var csv = new CsvReader(file);
    csv.Configuration.RegisterClassMap<OrderMap>();
    var orderFlow = csv.GetRecords<Order>().ToList();

当我尝试通过getField<string>(Index)访问某个字段时,我对0以上的所有索引都会收到相同的错误。getField<string>(0)返回以;分隔的整行。怎么了?

1 个答案:

答案 0 :(得分:2)

问题是您没有将分隔符指定为;。默认分隔符为,。您需要更新配置。您可以在库site找到更多信息。

csv.Configuration.Delimiter = ";";