Unity, C #, как получить значение словаря, если значение является списком - PullRequest
0 голосов
/ 21 сентября 2018

Конкретно, я использую parse, объект parseobject, который я получаю с сервера, включает в себя ключ «Weapon», который является массивом, и parseobject в этом массиве.Но теперь я не могу получить доступ к этому значению, когда я делаю это,

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

pWeapon имеет значение null, а журнал

InvalidCastException: Невозможно привести из источникатип к типу назначения.

и другие методы преобразования также не работают.

Я добавляю точку останова и, как вы можете видеть, в «Maingun» есть значения

2 значения в этом списке

Даже когда я преобразую его в Json,

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

возвращает {};

Что я мог сделать сейчас?Спасибо в любом случае!

1 Ответ

0 голосов
/ 21 сентября 2018

Как видно из скриншота типа, это не List<ParseObject>, поэтому приведение не будет выполнено.Это List<Object>.Таким образом, вам нужно обработать его как этот тип, а затем использовать Linq в этом списке, чтобы создать строго типизированный список, выполнив с ним следующее: .OfType<ParseObject>().Итак, вы получите ...

List<ParseObject> pWeapon =
    ((List<Object>)detailObj["Maingun"]).OfType<ParseObject>().ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...