将 CSV 读取到自定义对象的 CSVHelper 问题

CSVHelper issue with reading CSV to custom object

我正在尝试将 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\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) returns 整行用 ; 分隔。怎么了?

问题是您没有将定界符指定为 ;。默认分隔符是 ,。您需要更新您的配置。您可以在图书馆 site.

上找到更多信息
csv.Configuration.Delimiter = ";";