这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个COM对象,返回一个变成c#对象的变量。我能把它变成int型的唯一方法是
int test = int.Parse(string.Format("{0}", myobject))
有更干净的方法吗?谢谢
这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个COM对象,返回一个变成c#对象的变量。我能把它变成int型的唯一方法是
int test = int.Parse(string.Format("{0}", myobject))
有更干净的方法吗?谢谢
当前回答
这对我有用,当myobject包含DBNull时也返回0
int i = myobject.ToString().Cast<int>().FirstOrDefault();
其他回答
你可以先将object转换为string,然后将string转换为int; 例如:
string str_myobject = myobject.ToString();
int int_myobject = int.Parse(str_myobject);
这对我很管用。
也许Convert.ToInt32。
在这两种情况下都要注意例外情况。
使用Int32。TryParse如下。
int test;
bool result = Int32.TryParse(value, out test);
if (result)
{
Console.WriteLine("Sucess");
}
else
{
if (value == null) value = "";
Console.WriteLine("Failure");
}
还有TryParse。
从MSDN:
private static void TryToParse(string value)
{
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
Convert.ToInt32(myobject);
这将处理myobject为null并返回0的情况,而不是抛出异常。