我有一个字典如下:转换字典<TKEY的,列表<TValue>>到ReadOnlyDictionary <TKEY的,ReadOnlyCollection <TValue>>
public enum Role { Role1, Role2, Role3, }
public enum Action { Action1, Action2, Action3, }
var dictionary = new Dictionary<Role, List<Action>>();
dictionary.Add(RoleType.Role1, new Action [] { Action.Action1, Action.Action2 }.ToList());
现在我想能够构造只读字典,其值类型是也只读如下:
var readOnlyDictionary = new ReadOnlyDictionary<Role, ReadOnlyCollection<Action>>(dictionary);
最后一行显然会导致编译时错误由于TValue
类型的差异。
使用List<TValue>
也是必要的,因为原始字典是从外部来源编程式填充的。
有没有简单的方法来执行此转换?
你知道吗,集合像列表也可以使用集合初始化器初始化? ; P –
@MatíasFidemraizer:是的。但是我需要在运行时构造只读集合。 –
不,我建议这是因为你从一个数组中创建一个列表... –