簡體   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