1

我正在尝试将 CSV 文件读入我的自定义对象,但每次我收到一个错误消息,指出此类字段不存在。然而,它们确实存在。

这是我的代码:

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)返回用 . 分隔的整行;。怎么了?

4

1 回答 1

2

问题是您没有将分隔符指定为;. 默认分隔符是,. 您需要更新配置。您可以在图书馆网站上找到更多信息。

csv.Configuration.Delimiter = ";";
于 2016-03-18T13:04:10.107 回答