2012-08-15 84 views
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); 

任何幫助表示感謝。

回答

1

可以使用弱類型IEnumerable這份工作:

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

現在,您可以枚舉值:

foreach(object value in values) 
{ 
    // ... 
} 
+0

非常感謝你。 – tesicg 2012-08-15 11:34:38

相關問題