Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.Bcl.Immutable:基于IImmutableDictionary创建字典_C#_.net_Immutability - Fatal编程技术网

C# Microsoft.Bcl.Immutable:基于IImmutableDictionary创建字典

C# Microsoft.Bcl.Immutable:基于IImmutableDictionary创建字典,c#,.net,immutability,C#,.net,Immutability,我有代码,在那里我得到一个IDictionary,需要返回一个IImmutableDictionary。没问题,我只是运行扩展方法ToImmutableDictionary() 在其他地方,我得到一个IImmutableDictionary,需要返回一个IDictionary。有更好的方法吗?使用imutable.ToDictionary(r=>r.Key,r=>r.Value)如: Dictionary<int,int> dictionary = new Dictionary<

我有代码,在那里我得到一个IDictionary,需要返回一个IImmutableDictionary。没问题,我只是运行扩展方法ToImmutableDictionary()


在其他地方,我得到一个IImmutableDictionary,需要返回一个IDictionary。有更好的方法吗?

使用
imutable.ToDictionary(r=>r.Key,r=>r.Value)
如:

Dictionary<int,int> dictionary = new Dictionary<int, int>();
IImmutableDictionary<int, int> imutable = dictionary.ToImmutableDictionary();
IDictionary<int, int> dictionary2 = imutable.ToDictionary(r=> r.Key, r=> r.Value);
Dictionary Dictionary=newdictionary();
IImmutableDictionary imutable=dictionary.ToImmutableDictionary();
IDictionary dictionary2=imutable.ToDictionary(r=>r.Key,r=>r.Value);

您的代码之所以有效,是因为您的“不可变”变量是一个不可变字典。将其声明为IImutableDictionary,它将不起作用:-S@RickyHelgesson,检查更新后的代码,你是对的,我错过了隐式
var
用法。刚刚用示例值尝试了上面的代码,效果很好。啊,以前从未使用过这种技术。感谢您解决了我的问题,并向我展示了这个巧妙的技巧。:)