我的地图类是
public sealed class ProductMap : CsvClassMap<Product>
{
public ProductMap()
{
Map(m => m.VatRate).ConvertUsing(row =>
{
if (string.IsNullOrEmpty(row.GetField<string>("VatRate"))) throw new Exception("VatRate is required.");
return row.GetField<string>("VatRate");
}).Index(0);
}
}
我的产品类是
public class Product
{
public decimal VatRate { get; set; }
}
在尝试获取列表中的记录时,
IEnumerable<Product> products = csv.GetRecords<Product>().ToList();
我收到以下错误。
索引超出了数组的范围。
这是StackTrace
在BackFinal.Parse。&lt; .ctor&gt; b__1(例外情况,ICsvReader行)中 d:\ Projects \ BackFinal \ CSVImport.cs:第80行 CsvHelper.CsvReader.d__63
1.MoveNext() in C:\Projects\CsvHelper\src\CsvHelper\CsvReader.cs:line 944 at System.Collections.Generic.List
1..ctor(IEnumerable1 collection)
1来源)at BackFinal.Parse..ctor(UploadFilesResult R)in d:\ Projects \ BackFinal \ CSVImport.cs:第87行
at System.Linq.Enumerable.ToList[TSource](IEnumerable
如果我将VatRate
类Product
的类型从decimal
更改为string
,我就不会收到任何错误。
请问我有解决方案吗?