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);