gpt4 book ai didi

dictionary - F# 将 Map 转换为 Dict 的有效方法(反之亦然)

转载 作者:行者123 更新时间:2023-12-03 16:48:02 26 4
gpt4 key购买 nike

我没有找到任何本地函数来进行从 Dict 到 Map 的转换,反之亦然。 (类似于 Map.ofDictDict.ofMap 。)
主要原因是 map 是不可变的,而字典不是。

我错过了什么吗?

最佳答案

从字典到 map 没有一个方便的功能,但有一个内置的 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

使用 dict 函数可以轻松完成相反的操作:
let mapToDict map =
map
|> Map.toSeq
|> dict

注意上面的函数返回一个 IDictionary ,其实现既是 FSharp.Core 库的内部实现,又是不可变的。

如果你想得到一个标准的 .NET 可变字典,你可以使用接受 IDictionary 的构造函数。 , Map工具 IDictionary所以这一步非常简单。
let mapToMutDict map =
map :> System.Collections.Generic.IDictionary<_,_>
|> System.Collections.Generic.Dictionary

关于dictionary - F# 将 Map 转换为 Dict 的有效方法(反之亦然),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35421770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com