[英]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.