2013-06-20 67 views
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>()); 

很明显,第二行不能用它当前的格式。

任何人都可以提出一个有效的方式来处理这个问题?

+0

有效的方法 - 不要做转换和使用接口。否则,请显示工作代码,以便有人可以改进它。 –

回答

1

你可以在下面做。但是如果你的代码需要从抽象类型转换为具体的实现,那么你的设计可能还有其他一些问题。

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