C# 长值词典
我有这种类型的C# 长值词典,c#,.net,C#,.net,我有这种类型的字典: Dictionary<string, object> dict long wantedid = (long)dict["wantedid"]; 这是我得到的一个例外: 指定的强制转换无效 您试图读取的值显然不是long值。由于您将字典定义为字典,因此您可以在其中放置任何类型的对象 调试代码,并检查所需元素的值。您可以在“监视”窗口中看到数据类型 要在运行时检查类型,可以尝试: object o = dict["wantedid"]; if (o is lon
字典
:
Dictionary<string, object> dict
long wantedid = (long)dict["wantedid"];
这是我得到的一个例外:
指定的强制转换无效
您试图读取的值显然不是
long
值。由于您将字典
定义为字典
,因此您可以在其中放置任何类型的对象
调试代码,并检查所需元素的值。您可以在“监视”窗口中看到数据类型
要在运行时检查类型,可以尝试:
object o = dict["wantedid"];
if (o is long)
{
long wantedid = (long)o;
// ...
}
但是,如果只需要存储
long
值,请将字典定义为dictionary
您试图读取的值显然不是long
值。由于您将字典
定义为字典
,因此您可以在其中放置任何类型的对象
调试代码,并检查所需元素的值。您可以在“监视”窗口中看到数据类型
要在运行时检查类型,可以尝试:
object o = dict["wantedid"];
if (o is long)
{
long wantedid = (long)o;
// ...
}
但是,如果只需要存储
long
值,请将字典定义为dictionary
您已将值对定义为对象,因为它可能还包含字符串值或其他任何内容
因此,假设它包含“Hello”
,则强制转换将明显为false。您已将值对定义为对象,因为它可能还包含字符串值或任何其他内容
因此,假设它包含“Hello”
,则强制转换将明显为false。您可以使用TryParse来确保该值为long。可能是这样的:
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
}
您可以使用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
}
如果该特定值为长
,则您的强制转换应该有效。如何将对象放入字典?如果该特定值是长的
,则您的强制转换应该有效。你是如何把这个对象放入字典的?