将 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 = ";";
我正在尝试将 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 = ";";