繁体   English   中英

Unity,C#如果值是列表,如何获取字典的值

[英]Unity, c# how to get value of dictionary if the value is a list

具体来说,我使用parse,从服务器获取的parseobject包含一个键“ Weapon”(它是一个数组),以及在此array中的parseobject。 但是现在当我这样做时,我无法访问该值,

    List<ParseObject> pWeapon =(List<ParseObject>)detailObj["Maingun"];

pWeapon为空,日志为

InvalidCastException:无法从源类型转换为目标类型。

和其他转换方法也不起作用。

我添加了一个断点,如您所见,“ Maingun”中有值

此列表中有2个值

即使我将其转换为Json,

    Debug.Log(JsonUtility.ToJson(detailObj["Maingun"]));

返回{};

我现在该怎么办? 反正!

从该类型的屏幕快照中可以看到,它不是List<ParseObject> ,所以List<ParseObject>将失败。 它是一个List<Object> 因此,您需要将其视为该类型,然后在该列表上使用Linq来对它执行以下操作来创建强类型列表: .OfType<ParseObject>() 所以你得到...

List<ParseObject> pWeapon =
    ((List<Object>)detailObj["Maingun"]).OfType<ParseObject>().ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM