【发布时间】:2014-05-28 11:46:24
【问题描述】:
我正在尝试使用 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;}
}
但是,这不起作用并生成此异常:
{"Value \"DataField2\" 在第 9 行的字段格式错误或 属性 \"DataFoe;d2\" 在类型 \"Record\"."}
显然它期待一个点,但我怎样才能使用逗号使它工作。
【问题讨论】:
-
我们可以提出一个没有 LinqToCsv 的解决方案吗?
-
嗯,很感谢您在不使用特定技术的情况下帮助我解决问题。但是我们需要编写很多 CSV 解析器(将我们的应用程序链接到很多不同的提供者)。我正在尝试使用 LinqToCSV,因为它易于使用且编写速度快,我想知道是否可以使用 LinqToCSV
-
“0,34”是货币类型的合适值吗?我会在那里尝试一些其他值。那是错字吗?或者,应该是“0.34”。
-
它在荷兰,所以这是我的问题。
-
您可能需要设置某种货币文化格式。
标签: c# linq csv decimal-point linqtocsv