Существует ли элегантный способ преобразования вложенного HashTable во вложенный и типизированный словарь?
Я преобразовываю вложенный HashTable в типизированный и вложенный словарь путем приведения типа при копировании таблицы:
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);
}
, но я не знаю, как обращаться с вложенной частью!