我没有看到任何本机功能来从Dict转换为Map,反之亦然.(比如Map.ofDict或Dict.ofMap)(主要区别是Map是不可变的,而Dict是可变的)
我错过了什么吗?
谢谢
从字典到映射没有方便的功能,但有一个内置dict
函数可以从一系列元组转换为一个IDictionary<'a,'b>
,参见:https://msdn.microsoft.com/en-us/library/ee353774. aspx.
我知道做字典映射转换的最简单方法是:
let dictToMap (dic : System.Collections.Generic.IDictionary<_,_>) =
dic
|> Seq.map (|KeyValue|)
|> Map.ofSeq
Run Code Online (Sandbox Code Playgroud)
使用dict函数很容易:
let mapToDict map =
map
|> Map.toSeq
|> dict
Run Code Online (Sandbox Code Playgroud)
注意,上面的函数返回一个IDictionary
,其实现既是FSharp.Core库的内部,也不是可变的.
如果你想要一个标准的.NET可变字典,你可以使用接受一个IDictionary
,Map
实现的构造函数,IDictionary
所以这个步骤非常简单.
let mapToMutDict map =
map :> System.Collections.Generic.IDictionary<_,_>
|> System.Collections.Generic.Dictionary
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1184 次 |
最近记录: |