LinqToCSV和十进制全球化

时间:2014-05-28 11:46:24

标签: c# linq csv decimal-point linqtocsv

我正在尝试使用LingToCSV读取一个csv文件,其中包含十进制值,逗号分隔符而不是一个点。

这是一行输入:

"DataField1","DataField2"
"Test", "0,34"

我用这堂课来读它:

public class Record
{
   [CsvColumn(Name = "DataField1", FieldIndex=  1)]
   string DataField1 {get;set;}

   [CsvColumn(Name = "DataField2", FieldIndex=  2, OutputFormat="C", NumberStyle=NumberStyles.Currency)]
   decimal DataField2 {get;set;}
}

但是,这不起作用并产生此异常:

  第9行中的

{“Value \”DataField2 \“具有错误的字段或格式   属性\“DataFoe; d2 \”,类型为“Record”。“}

显然它期待一点,但我怎样才能使用逗号。

1 个答案:

答案 0 :(得分:4)

相信您需要在CsvFileDescription中设置FileCultureName ...

CsvFileDescription fileDesc = new CsvFileDescription
        {

            FirstLineHasColumnNames = true
            FileCultureName = "nl" 
        };