我有一本字典,想要使用反射从键/值对中获取所有字典值的列表。值可以是不同的类型。键是字符串,我能够以这种方式获得所有字典键:
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);
任何帮助都表示赞赏。
答案 0 :(得分:1)
您可以将弱类型IEnumerable
用于此作业:
IEnumerable values = (IEnumerable)p_info_values.GetValue(obj, null);
现在您可以枚举值:
foreach(object value in values)
{
// ...
}