从System.Collections.Generic.Dictionary`2 [System.Object,System.Object]读取数据

时间:2014-12-18 21:22:05

标签: c#

我正在努力从IDictionary中读取数据,并且非常感谢一些帮助。当它只是一个对象数组时,我已经提取了我需要的其他数据,但我现在有一个KeyValuePair可以处理。当我尝试将其转换为KeyValuePair时,我得到一个InvalidCastException,所以我这样做是为了尝试找到类型:

var test = plist["CFBundleIcons"];
MessageBox.Show(test.GetType().ToString());

返回 System.Collections.Generic.Dictionary`2 [System.Object,System.Object] 。我的第一个问题是2是什么意思?我过去曾使用过词典,之前从未见过这些词典。

如果它有助于进一步了解我的主要问题,我附上了本地视图的屏幕截图 - 我试图阅读图标名称。提前谢谢。

Locals view

2 个答案:

答案 0 :(得分:2)

这是CLR如何编码泛型类型名称。 `2表示类型中类型参数的数量。

在C#术语中,这是Dictionary<object, object>

答案 1 :(得分:2)

这就是.NET如何使用两个类型参数对泛型类型的名称进行编码。 plist["CFBundleIcons"]Dictionary<object, object>。因此,不应将其强制转换为KeyValuePair,而应将其转换为正确的类型。