0

インターフェイスベースのキーと値で構成される辞書が与えられた場合、辞書を具象ベースのキーと値を持つ辞書に変換/キャストする最良の方法は何ですか?

IDictionary<IKeyType, IList<IValueType>> myDict = new Dictionary<IKeyType,IList<IValueType>>();

IDictionary<KeyType, IList<ValueType>> newDict = myDict.ToDictionary(k => k.Key, v = > v.Value.OfType<ValueType>());

明らかに、2 行目は現在の形式では機能しません。

誰かがこの問題に対処する効率的な方法を提案できますか?

4

1 に答える 1

1

以下でできます。しかし、コードで抽象型から具体的な実装へのキャストが必要な場合は、設計に別の問題が発生する可能性があります。

Dictionary<KeyType, IList<ValueType>> newDict = 
                   myDict.ToDictionary(
                       k => k.Key as KeyType, 
                       v => v.Value.OfType<ValueType>() as IList<ValueType>);
于 2013-06-20T05:41:08.630 に答える