我有这种类型的Dictionary
:字典长值
Dictionary<string, object> dict
而且价值之一是long
,这是我尝试从Dictionary
得到它:
long wantedid = (long)dict["wantedid"];
这是我得到的例外:
指定的转换无效。
我有这种类型的Dictionary
:字典长值
Dictionary<string, object> dict
而且价值之一是long
,这是我尝试从Dictionary
得到它:
long wantedid = (long)dict["wantedid"];
这是我得到的例外:
指定的转换无效。
您试图读取的值显然不是long
值。由于您将Dictionary
定义为Dictionary<string, object>
,因此您可能已将任何类型的对象放入其中。
调试代码,并检查所需元素的值。您可以在Watch窗口中看到数据类型。
要检查运行时类型,你可以尝试:
object o = dict["wantedid"];
if (o is long)
{
long wantedid = (long)o;
// ...
}
不过,如果你只需要存储long
值,定义字典为Dictionary<string, long>
。
您已将值对定义为object
,因为它可能还包含字符串值或其他任何值。
因此,假设它包含"Hello"
,那么演员阵容显然是错误的。
您可以使用TryParse确保值很长。它可能是这样的:
long wantedid;
bool isLong = long.TryParse(dict["wantedid"].ToString(), out wantedid);
if (isLong)
{
//do whatever you want to because you know the object can be a long
}
如果这个特定的值是一个“长”,那么你的演员应该工作。你如何将对象放入字典中? – LukeH 2013-03-16 12:56:19