在源文件中,我有时会用连字符表示双字段
448,218|7,948,218|-|448,218|-我写了一个类型转换器来处理这个问题。
public class HyphenToZeroConverter : ITypeConverter
{
public string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
throw new NotImplementedException();
}
public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
{
if (text == "-")
{
return 0.0;
}
return double.Parse(text, NumberStyles.AllowParentheses |
NumberStyles.AllowThousands |
NumberStyles.AllowDecimalPoint);
}
}但是转换不起作用,Message=The conversion cannot be performed.Text:-
此外,数字样式不起作用,因为我得到的异常为千分隔符和括号的负数。即使我没有使用任何类型转换器,这种情况也会发生。
你能帮我解决这个问题吗?
发布于 2018-06-27 04:13:35
在调用该方法时,我确实看不到文本包含的内容,但要执行double.parse,需要确保从文本中剔除任何不是数字的字符,例如
text = text.Replace('|', String.Empty);发布于 2018-06-27 05:04:39
CsvHelper的作者Josh Close回答了这个问题
https://stackoverflow.com/questions/51049961
复制相似问题