0

我有一本字典,想使用反射从键/值对中获取所有字典值的列表。这些值可以是不同的类型。键是字符串,我可以通过这种方式获取所有字典键:

PropertyInfo p_info_keys = obj.GetType().GetProperty("Keys");
IEnumerable<string> keys = (IEnumerable<string>)p_info_keys.GetValue(obj, null);

我可以使用以下代码查看所有字典值:

PropertyInfo p_info_values = obj.GetType().GetProperty("Values");
object values = p_info_values.GetValue(obj, null);

但是,我不确定如何获得可以枚举的东西而不是对象类型。所以,这行代码是有问题的:

object values = p_info_values.GetValue(obj, null);

任何帮助表示赞赏。

4

1 回答 1

1

您可以使用弱类型IEnumerable来完成这项工作:

IEnumerable values = (IEnumerable)p_info_values.GetValue(obj, null);

现在您可以枚举值:

foreach(object value in values)
{
    // ...
}
于 2012-08-15T10:58:46.170 回答