[英]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”中有值
即使我将其转换为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.