CsvHelper:索引超出了数组的范围

时间:2016-04-16 20:15:05

标签: c# csvhelper

我的地图类是

 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(IEnumerable 1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1来源)at   BackFinal.Parse..ctor(UploadFilesResult R)in   d:\ Projects \ BackFinal \ CSVImport.cs:第87行

如果我将VatRateProduct的类型从decimal更改为string,我就不会收到任何错误。

请问我有解决方案吗?

0 个答案:

没有答案