collections - 在 F# 中,如何合并 2 个 Collections.Map 实例?

标签 collections f#

我正在尝试合并两个 map ,但没有用于加入集合的内置方法。你是怎么做到的?

最佳答案

您可以使用 Map.fold 和 Map.add 来实现这一点,因为 add 实际上是添加/替换:

let map1 = Map.ofList [ 1, "one"; 2, "two"; 3, "three" ]
let map2 = Map.ofList [ 2, "two"; 3, "oranges"; 4, "four" ]


let newMap = Map.fold (fun acc key value -> Map.add key value acc) map1 map2

printfn "%A" newMap 

可能没有开箱即用地提供合并的原因是您需要处理 key 冲突。在这个简单的合并算法中,我们简单地从第二个映射中获取键值对,这可能不是您想要的行为。

关于collections - 在 F# 中,如何合并 2 个 Collections.Map 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974758/

相关文章:

c# - 是否有类似 List<T> 的动态数组允许访问 .NET 中的内部数组数据?

f# - 如何在 Rider 中使用 F# 创建 ASP.NET Core WebAPI 项目?

f# - 在 F# 和 Suave.IO 中创建一个简单的 TCP 服务器

syntax - 如何在 C# 上下文中引用包含单引号的 F# 名称?

java - 使用 Java 集合的应用程序

java - java中图形操作的实用程序

java - 我应该使用什么结构来存储键和可能值的列表?

winforms - 在 F# 中绘制 Windows 窗体

f# - 与计算表达式的相互递归

java - 从集合中获取第一个(也是唯一的值)