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>());

显然,第二行在当前形式下不起作用。

任何人都可以提出一种有效的方法来解决这个问题吗?

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 回答