LinqToCSV и десятичная глобализация

1

Я пытаюсь прочитать csv файл с использованием LingToCSV, содержащий десятичные значения с запятой, а не точкой.

Это одна строка ввода:

"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;}
}

Однако это не работает и генерирует это исключение:

{"Значение \" DataField2\"в строке 9 имеет неправильный формат поля или свойства \" DataFoe; d2\"в типе \" Запись \"."}

Очевидно, что он ожидает какой-то момент, но как я могу заставить его работать с запятыми.

Теги:
linq
csv
decimal-point
linqtocsv

1 ответ

4
Лучший ответ

Поверьте, вам нужно установить FileCultureName в CsvFileDescription...

CsvFileDescription fileDesc = new CsvFileDescription
        {

            FirstLineHasColumnNames = true
            FileCultureName = "nl" 
        };
  • 0
    или передать непосредственно FileCultureInfo
  • 0
    Не могу поверить, что я пропустил это ....
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню