在源文件中,有时我有时会为双字段使用连字符
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:-
数字样式也不起作用,因为我得到了千位分隔符的异常和负数的括号。即使我没有使用任何类型转换器,也会发生这种情况。
您能帮我解决这个问题吗?
答案 0 :(得分:0)
当您调用该方法时,我真的看不到什么文本,但是要进行double.parse,您需要确保从文本中去除所有非数字字符,例如
text = text.Replace('|', String.Empty);
答案 1 :(得分:0)
此问题由CsvHelper的作者Josh Close回答