【问题标题】:CSVHelper issue with reading CSV to custom objectCSVHelper 读取 CSV 到自定义对象的问题
【发布时间】:2016-03-18 12:14:25
【问题描述】:

我正在尝试将 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&lt;string&gt;(Index) 访问某个字段时,对于高于 0 的所有索引,我都会遇到相同的错误。getField&lt;string&gt;(0) 返回用 ; 分隔的整行。怎么了?

【问题讨论】:

  • 如果您包含一个 .csv 样本会有所帮助
  • 这里是示例文件my_file。欢迎任何帮助。

标签: c# csv csvhelper


【解决方案1】:

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

csv.Configuration.Delimiter = ";";

【讨论】:

  • 毕竟它被称为 CSV 而不是 SCSV。只是个玩笑,但 Dmeel 是对的。
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 2021-10-02
  • 2017-11-30
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
相关资源
最近更新 更多