我想将对象(包含一个字符串)转换为double,如果失败(它包含一个不能转换为double的字符串)将其转换为字符串,那么我将有一个List<object>
双打和弦乐。
我有这样的事情: (thisNavigator是XPathNavigator)
object paramValue;
paramValue = Convert.ToDouble(thisNavigator.ValueAsDouble);
答案 0 :(得分:4)
这样的事可能吗?
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);
}
}
答案 1 :(得分:1)
您可以使用double.TryParse()
:
object paramValue = ...;
double doubleValue;
if(!double.TryParse(thisNavigator.Value, out doubleValue))
{
paramValue = thisNavigator.Value;
}
但更好的是你可以使用thisNavigator.TypedValue
,它应该返回键入的值作为适当的类型(但是作为对象加框) - 然后你可以将它直接插入你的列表中。我不得不质疑设计 - 你为什么要保持List<object>
?必须有更好的方法。