私は、監査ログのデータ構造の "深い比較"を行っています(誰がいつメンバーを変更したか)。私はこのためにリフレクションを使用しており、構造を再帰して比較しています。私は辞書を含む人たちには問題がありました。"Deep compare"辞書
会員が辞書であることをtypeof(IDictionary).IsAssignableFrom(memberType)
で検出できます。私の計画は、両方のオブジェクトに存在するキーを収集し、それらのキーで再帰を続けます。ただし、IDictionary.Keys
はICollection
であり、LINQで拡張されていません。どのように私はこれを達成することができますキーの種類を知らない?
おそらく、この方法は、次善策です(私はジェネリックス/リフレクションコンボで経験はありません)。別の方法でこれを行うべきでしょうか?
あなたの質問はどのようにLINQに関係していますか? – Seb
@DavidM: 'IEnumerable'ではなく、テンプレートのバージョンのみです。私の質問の 'memberType'は' Dictionary 'となります。それは 'IDictionary'に割り当てられますが、私が知る限り、' IDictionary 'を実行することはできません。非総称の「IDictionary」で置き換えます。 –
carlpett