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 に答える