有效地将元素添加到嵌套地图

海登

我有一个嵌套的地图,像这样:

Map<int, Map<int, int>>

而且我希望能够尽可能高效,整洁地将元素添加到嵌套Map中。

我当前的解决方案是这样的:

let AddStuff (collection:Map<int, Map<int, int>>) firstID secondID value = 
    let newValue = collection.[firstID].Add(secondID, value)
    let newCollection = collection.Add(firstID, newValue)
    newCollection

在我看来,这似乎不是F#做事方式,所以想知道添加到嵌套Map的最佳方法是什么?

编辑一些预期的输入/输出:

let aMap = map[(1, map[(1, 1)])]
let firstID = 1
let secondID = 2
let value = 2

let newMap = aMap firstID secondID value

// newMap = map[(1, map[(1, 1); (2, 2)])] 

编辑2

看来partialCollection对输出没有影响,所以我将其从函数中删除了。

要使样式的功能更实用,可以将这些.Add方法调用替换为对Map.add函数的调用Map模块上的函数,而不是单个Map对象上的方法调用)。您可能还希望将函数collection参数移到AddStuff最后一个参数,以便可以更轻松地与|>运算符一起使用。然后看起来像:

let AddStuff firstID secondID value (collection:Map<int, Map<int, int>>) = 
    let newValue = collection.[firstID] |> Map.add secondID value
    collection |> Map.add firstID newValue

您可以像这样使用它:

let newMap = aMap |> AddStuff firstID secondID value

您可以自行决定哪种样式更好,但是我|>自己更喜欢这种样式,因为它让我根据“这些数据通过这些操作进行传递”来思考。

编辑:该功能可能看起来有些空白更好:

let AddStuff firstID secondID value (collection:Map<int, Map<int, int>>) = 
    let newValue =
        collection.[firstID]
        |> Map.add secondID value
    collection |> Map.add firstID newValue

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有效地将元素添加到列表的顶部

来自分类Dev

有效地将多个元素添加到C#中List的开头

来自分类Dev

有效地将多个元素添加到C#中List的开头

来自分类Dev

如何有效地将X模Y添加到numpy数组中的每个元素?

来自分类Dev

有效地将信息添加到列表中。Linq联盟?

来自分类Dev

有效地将新列从sqlite db添加到pandas数据框

来自分类Dev

如何有效地将订单变量添加到大数据框

来自分类Dev

有效地将图像添加到Google电子表格

来自分类Dev

如何有效地将订单变量添加到大数据框

来自分类Dev

有效地将值添加到二维数组

来自分类Dev

如何有效地将常量值添加到GWT的ListBox中?

来自分类Dev

Django - 如何有效地将列表添加到多对多模型字段

来自分类Dev

无法有效地将类添加到 Roslyn 中的命名空间

来自分类Dev

如何有效地将字典中的数据添加到数据框中?

来自分类Dev

如何有效地将行添加到具有缺失值的pandas DataFrame?

来自分类Dev

我如何(有效地)将向量添加到Julia中矩阵的每一行?

来自分类Dev

如何有效地将常量值添加到GWT中的列表框?

来自分类Dev

如何有效地将常量值添加到GWT中的列表框?

来自分类Dev

如何通过使用Ansible官方模块将磁盘更有效地添加到VMware的VM主机?

来自分类Dev

通过循环将数据有效地添加到h5py数据集中

来自分类Dev

如何使用C#有效地将右边框添加到Excel范围?

来自分类Dev

如何有效地在地图中插入元素?

来自分类Dev

如何有效地从vim中将文件添加到vim的args列表中?

来自分类Dev

如何有效地从vim中将文件添加到vim的args列表中?

来自分类Dev

在C ++中将大量的类有效地添加到映射数组

来自分类Dev

如何优雅有效地将矢量元素分组到地图中?

来自分类Dev

要将属性添加到CRXDE之外的cq5文件夹?或有效地将CRXDE与GIT结合使用的方法?

来自分类Dev

使用来自另一个 DataFrame 的值有效地将列添加到 Pandas DataFrame

来自分类Dev

有效地添加规则

Related 相关文章

  1. 1

    有效地将元素添加到列表的顶部

  2. 2

    有效地将多个元素添加到C#中List的开头

  3. 3

    有效地将多个元素添加到C#中List的开头

  4. 4

    如何有效地将X模Y添加到numpy数组中的每个元素?

  5. 5

    有效地将信息添加到列表中。Linq联盟?

  6. 6

    有效地将新列从sqlite db添加到pandas数据框

  7. 7

    如何有效地将订单变量添加到大数据框

  8. 8

    有效地将图像添加到Google电子表格

  9. 9

    如何有效地将订单变量添加到大数据框

  10. 10

    有效地将值添加到二维数组

  11. 11

    如何有效地将常量值添加到GWT的ListBox中?

  12. 12

    Django - 如何有效地将列表添加到多对多模型字段

  13. 13

    无法有效地将类添加到 Roslyn 中的命名空间

  14. 14

    如何有效地将字典中的数据添加到数据框中?

  15. 15

    如何有效地将行添加到具有缺失值的pandas DataFrame?

  16. 16

    我如何(有效地)将向量添加到Julia中矩阵的每一行?

  17. 17

    如何有效地将常量值添加到GWT中的列表框?

  18. 18

    如何有效地将常量值添加到GWT中的列表框?

  19. 19

    如何通过使用Ansible官方模块将磁盘更有效地添加到VMware的VM主机?

  20. 20

    通过循环将数据有效地添加到h5py数据集中

  21. 21

    如何使用C#有效地将右边框添加到Excel范围?

  22. 22

    如何有效地在地图中插入元素?

  23. 23

    如何有效地从vim中将文件添加到vim的args列表中?

  24. 24

    如何有效地从vim中将文件添加到vim的args列表中?

  25. 25

    在C ++中将大量的类有效地添加到映射数组

  26. 26

    如何优雅有效地将矢量元素分组到地图中?

  27. 27

    要将属性添加到CRXDE之外的cq5文件夹?或有效地将CRXDE与GIT结合使用的方法?

  28. 28

    使用来自另一个 DataFrame 的值有效地将列添加到 Pandas DataFrame

  29. 29

    有效地添加规则

热门标签

归档