我可能有以下类型:
带小数的数字:100.90
数字(int32):32
字符串:“”
我想要的是一个尝试解析为十进制的函数,如果失败,则尝试解析为int,如果失败,那么它是一个字符串。 C#中具有以下功能的任何类型的功能都是值得赞赏的。
答案 0 :(得分:2)
public static object cascadeParse(string obj)
{
decimal decRet;
if (!decimal.TryParse(obj, out decRet))
{
int intRet;
if (!int.TryParse(obj, out intRet))
{
return obj;
}
else
{
return intRet;
}
}
else
{
return decRet;
}
}
但是,当传递可以解析为decimal
的内容时,此方法将始终返回int
,因为int
始终可以解析为decimal
。您可能需要重新排序TryParse
以将int
放在首位。
答案 1 :(得分:1)
TryParse()是你的朋友,但是我不明白你想要什么,因为所有有效的整数都是有效的小数。