Преобразовать вложенный HashTable во вложенный словарь в C # - PullRequest
0 голосов
/ 07 февраля 2019

Существует ли элегантный способ преобразования вложенного 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);
}

, но я не знаю, как обращаться с вложенной частью!

...