如何尝试转换对象为双精度,如果它失败,把它作为字符串
本文关键字:失败 字符串 何尝试 如果 转换 双精度 对象 | 更新日期: 2023-09-27 18:16:43
我想将对象(保存字符串)转换为双精度,如果它失败(它包含一个不能转换为双精度的字符串)将其转换为字符串,这样我就会有一个双精度和字符串的List<object>
。
我有这样的东西:(thisNavigator是XPathNavigator)
object paramValue;
paramValue = Convert.ToDouble(thisNavigator.ValueAsDouble);
可能是这样的?
static void Add(List<object> list, XPathNavigator thisNavigator)
{
string s = thisNavigator.ValueAsString;
double d;
if(double.TryParse(s, out d))
{
list.Add(d);
}
else
{
list.Add(s);
}
}
您可以使用double.TryParse()
:
object paramValue = ...;
double doubleValue;
if(!double.TryParse(thisNavigator.Value, out doubleValue))
{
paramValue = thisNavigator.Value;
}
但是更好的是,你可以使用thisNavigator.TypedValue
,它应该返回值类型为适当的类型(但装箱为对象)-然后你可以直接插入到你的列表。我不得不质疑这个设计——你为什么要把List<object>
放在身边?一定有更好的办法