C# 只读词典<;int,List<;int>&燃气轮机;

C# 只读词典<;int,List<;int>&燃气轮机;,c#,.net-3.5,C#,.net 3.5,我有一个创建字典IReadOnlyDictionary的方法: Dictionary regularDictionary=新字典(); var readOnlyDict=新的ReadOnlyDictionary(常规字典); 如果您希望值中的列表也是只读的,那么您必须对这些列表执行与使用上述字典相同的操作:为每个列表创建一个新的只读集合,并使用该只读集合类型引用它 这段代码看起来很糟糕,但如果你把它一块一块地分解,就没那么糟糕了。我们将分两个阶段来消除恐惧。部分问题是。。。你给这些东西起什么名

我有一个创建
字典
IReadOnlyDictionary
的方法:

Dictionary regularDictionary=新字典();
var readOnlyDict=新的ReadOnlyDictionary(常规字典);
如果您希望值中的列表也是只读的,那么您必须对这些列表执行与使用上述字典相同的操作:为每个列表创建一个新的只读集合,并使用该只读集合类型引用它

这段代码看起来很糟糕,但如果你把它一块一块地分解,就没那么糟糕了。我们将分两个阶段来消除恐惧。部分问题是。。。你给这些东西起什么名字来区分它们

var regularDictWithReadOnlyCollections= 
    regularDictionary.ToDictionary(kvp => kvp.Key, 
                                   kvp => new ReadOnlyCollection<int>(kvp.Value));

var readOnlyDictOfReadOnlyCollections =
    new ReadOnlyDictionary<int, ReadOnlyCollection<int>>(
        regularDictWithReadOnlyCollections);
var regularDictWithReadOnlyCollections=
regularDictionary.ToDictionary(kvp=>kvp.Key,
kvp=>newreadonlycollection(kvp.Value));
var READONLYDICTOFREADONLY集合=
新只读词典(
带有只读集合的RegularDict);

我尝试过,但它显示无法创建抽象类或接口的实例'System.Collections.Generic.IReadOnlyDictionary'@danielsp抱歉,我复制了错误的内容--请尝试我现在得到的。
var regularDictWithReadOnlyCollections= 
    regularDictionary.ToDictionary(kvp => kvp.Key, 
                                   kvp => new ReadOnlyCollection<int>(kvp.Value));

var readOnlyDictOfReadOnlyCollections =
    new ReadOnlyDictionary<int, ReadOnlyCollection<int>>(
        regularDictWithReadOnlyCollections);