在需要时合并多个字典和聚合值

拉胡尔·米斯拉

我通过在 LINQ 中的 GroupBy 投影上调用 ToDictionary 创建了三个字典。

var dictionaryOne = _repositoryOne.GetData()
.GroupBy(d => new { d.Property1, d.Property2, d.LocalCcyId})
.ToDictionary(d =>
    new
    {
        d.Key.Property1,
        d.Key.Property2,
        d.Key.LocalCcyId
    },
    v => v.Sum(l => ConvertToUsd(effectiveDate, l.LocalCcyId, l.Amount))); 

var dictionaryTwo = _repositoryTwo.GetData()
.GroupBy(d => new { d.Property1, d.Property2, d.LocalCcyId})
.ToDictionary(d =>
    new
    {
        d.Key.Property1,
        d.Key.Property2,
        d.Key.LocalCcyId
    },
    v => v.Sum(l => ConvertToUsd(effectiveDate, l.LocalCcyId, l.Balance))); 

var dictionaryThree = _repositoryThree.GetData()
.GroupBy(d => new { d.Property1, d.Property2, d.LocalCcyId})
.ToDictionary(d =>
    new
    {
        d.Key.Property1,
        d.Key.Property2,
        d.Key.LocalCcyId
    },
    v => v.Sum(l => ConvertToUsd(effectiveDate, l.LocalCcyId, l.Total))); 

我想将这些合并到字典中,并且 i) 总结美元中的值 & ii) 从 Key 中删除按 LocalCcyId 列的分组

这将是三个字典中每个字典中出现的相同键的实例,我需要汇总所有此类情况的总和。我如何在 LINQ 中实现这一点?

神秘性

在我看来,这就是你所需要的:

var finalDictionary =
    dictionaryOne
        .Concat(dictionaryTwo)
        .Concat(dictionaryThree)
        .GroupBy(x => new { x.Key.Property1, x.Key.Property2 }, x => x.Value)
        .ToDictionary(x => new { x.Key.Property1, x.Key.Property2 }, x => x.Sum());

或者,使用 LINQ 语法(尽可能多地):

var finalDictionary =
(
    from x in dictionaryOne.Concat(dictionaryTwo).Concat(dictionaryThree)
    group x.Value by new { x.Key.Property1, x.Key.Property2 }
)
    .ToDictionary(x => new { x.Key.Property1, x.Key.Property2 }, x => x.Sum());

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何合并多个字典并添加相同键的值?(蟒蛇)

来自分类Dev

如何合并多个字典

来自分类Dev

通过angularjs迭代多个字典中的键和值

来自分类Dev

通过 angularjs 迭代多个字典中的键和值

来自分类Dev

在python中合并多个字典

来自分类Dev

将多个字典的值合并到一个列表中

来自分类Dev

合并具有相同值的公用键的多个字典列表

来自分类Dev

在 Python 中合并(同时保留值)多个字典的最快方法?

来自分类Dev

如何使用索引根据键和值将字典拆分为多个字典?

来自分类Dev

将多个列和多个行合并为字典中的单个值

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

需要在C#中按键和值相交2个字典

来自分类Dev

合并两个字典的最佳方法,合并第一和第二个键的值

来自分类Dev

将多个字典合并到单个数据框

来自分类Dev

搜索具有相同键和不同值的多个字典

来自分类Dev

如何合并三个字典,使一个键具有多个单独的列表值

来自分类Dev

将两个列表合并为一个字典,其中每个键可能包含多个值

来自分类Dev

尝试在同一表的多个字段中合并值和计数

来自分类Dev

合并2个字典中的值(Python)

来自分类Dev

根据共同值合并2个字典列表

来自分类Dev

合并2个字典中的值(Python)

来自分类Dev

多个字典的值分配列表,多个键的单个 for 循环

来自分类Dev

聚合字典中的值

来自分类Dev

条件和分区时的聚合值

来自分类Dev

按值对python中的多个字典进行排序

来自分类Dev

按值对python中的多个字典进行排序

来自分类Dev

Python - 如何比较多个字典并删除重复值?

来自分类Dev

将字典合并为两个字典值均为标量的数据框

来自分类Dev

python字典-合并两个字典,并在匹配时附加键值

Related 相关文章

  1. 1

    如何合并多个字典并添加相同键的值?(蟒蛇)

  2. 2

    如何合并多个字典

  3. 3

    通过angularjs迭代多个字典中的键和值

  4. 4

    通过 angularjs 迭代多个字典中的键和值

  5. 5

    在python中合并多个字典

  6. 6

    将多个字典的值合并到一个列表中

  7. 7

    合并具有相同值的公用键的多个字典列表

  8. 8

    在 Python 中合并(同时保留值)多个字典的最快方法?

  9. 9

    如何使用索引根据键和值将字典拆分为多个字典?

  10. 10

    将多个列和多个行合并为字典中的单个值

  11. 11

    需要在C#中按键和值相交2个字典

  12. 12

    需要在C#中按键和值相交2个字典

  13. 13

    合并两个字典的最佳方法,合并第一和第二个键的值

  14. 14

    将多个字典合并到单个数据框

  15. 15

    搜索具有相同键和不同值的多个字典

  16. 16

    如何合并三个字典,使一个键具有多个单独的列表值

  17. 17

    将两个列表合并为一个字典,其中每个键可能包含多个值

  18. 18

    尝试在同一表的多个字段中合并值和计数

  19. 19

    合并2个字典中的值(Python)

  20. 20

    根据共同值合并2个字典列表

  21. 21

    合并2个字典中的值(Python)

  22. 22

    多个字典的值分配列表,多个键的单个 for 循环

  23. 23

    聚合字典中的值

  24. 24

    条件和分区时的聚合值

  25. 25

    按值对python中的多个字典进行排序

  26. 26

    按值对python中的多个字典进行排序

  27. 27

    Python - 如何比较多个字典并删除重复值?

  28. 28

    将字典合并为两个字典值均为标量的数据框

  29. 29

    python字典-合并两个字典,并在匹配时附加键值

热门标签

归档