是否有一种优雅的方法将嵌套的HashTable转换为嵌套和键入的Dictionary?
我通过在复制表时强制转换类型,将嵌套的HashTable转换为类型化和嵌套的Dictionary:
var hashtable = GetHashTable();
var dic = new Dictionary<UnitType, IEnumerable<ImprovementData>>();
foreach (var unit in hashtable)
{
var improvements = new List<ImprovementData>();
foreach (var improvement in (Hashtable) unit.Value)
{
improvements.Add(new ImprovementData()
{
Type = (PropertyType) improvement.Key,
Value = (float) improvement.Value
});
}
dic.Add((UnitType) unit.Key, improvements);
}
我尝试过类似的事情:
public static Dictionary<K,V> HashtableToDictionary<K,V> (Hashtable table)
{
return table
.Cast<DictionaryEntry> ()
.ToDictionary (kvp => (K)kvp.Key, kvp => (V)kvp.Value);
}
但是我不知道如何处理嵌套部分!