private IDictionary <string, T> GetIndexedValues <T>(IList <string> path, string name)
        {
            var dictionary = new Dictionary <string, T>();
            var keys       = trie.GetChildKeys(path.Concat(new[] { name }));

            foreach (var index in keys)
            {
                var value = trie.GetValue(MakePath(path, name, index, SerialisationMetadata.EntryIndexedValue));
                var key   = SerialisationMetadata.ParseKey(index);
                dictionary.Add(key, (T)value);
            }
            return(dictionary);
        }
 private IEnumerable <string> EnumerateKeys(IEnumerable <string> path)
 {
     return(from key in trie.GetChildKeys(path)
            select SerialisationMetadata.ParseKey(key));
 }