需要从类型为ArrayList

时间:2017-03-28 06:45:53

标签: c#

我有一本词典。 它有3个键:种类 ID 的值是ArrayList类型的Object,其中包含Dictionary。 如何提取此类型ArrayList enter image description here

对象内的字典

类似地,内部词典有键:善意 id etag 自我链接 volumeInfo 即可。 除此之外, volumeInfo 的值再次由Type ArrayList的一个对象组成,该对象包含一个Dictionary。

我需要提取标题副标题的值,来自volumeInfo最内部词典的作者

1 个答案:

答案 0 :(得分:0)

DictionaryArrayList中的任何元素都被视为 object,这意味着编译器不知道实际类型。要使用其中一个元素,您必须将其强制转换:

ArrayList list = (ArrayList)dict["items"];

但是,如果字典不包含"items"键,或者"items"键的值不是ArrayList,则此代码将引发异常。如果您知道数据结构的内容始终相同,则不需要这样做。

您可以测试字典是否包含某个条目:

object o;
if (!dict.TryGetValue("items", out o))
{
    // item not found!
}

然后测试 - 并施放 - 元素:

ArrayList items = o as ArrayList;
if (items == null)
{
    // items is not an ArrayList!
}

关于投射位,访问ArrayList是类似的。

当您创建具有“Kind”,“TotalItems”和“Items”属性的对象时,您的数据将更容易访问(并且更易于编码)。即使这个数据结构是Json或Xml反序列化的结果,也有序列化器可以反序列化为专用类。