0

我有一个这样的字典集合(希望这是有道理的,在飞行中做了)

dim dic as new ienumerable(of dictionary(of integer, double))= _
{dictionary(of integer, double) = new { {1, 0.5}, {5, 0.75} } _
,dictionary(of integer, double) = new { {1, 0.3}, {4, 0.46} }}

我想得到一个dictionary(使用linq)相同键的总和,像这样

dictionary(of integer, double) = { {1, 0.8}, {4, 0.46}, {5, 0.75} }

所以,换句话说,我想添加groupkeys添加values分组项目。

我可以用 a 轻松做到这一点,for loop但我正在尝试学习 linq,并想用它来解决这个问题。谁能给我一些关于如何到达那里的提示?

4

1 回答 1

1
Dictionary<int, int> dict1 = new Dictionary<int, int>() {{1,9},{2,10},{3,11} };
        Dictionary<int, int> dict1 = new Dictionary<int, int>() {{1,9},{2,10},{3,11} };
        Dictionary<int, int> dict2 = new Dictionary<int, int>() { { 1, 9 }, { 2, 10 }, { 3, 11 } };
        Dictionary<int, int> dict3 = new Dictionary<int, int>() { { 1, 9 }, { 2, 10 }, { 3, 11 } };
        List<Dictionary<int, int>> list = new List<Dictionary<int, int>> {dict1,dict2,dict3 };
        Dictionary<int, int> dictionary = new Dictionary<int, int>();
        list.SelectMany(a => a).GroupBy(a => a.Key).ToList().ForEach(el=>dictionary.Add(el.Key,el.Sum(sm=>sm.Value)));

我没有 VB.net 的知识,但这是在 C# 中。我希望这将有所帮助。

于 2012-07-28T02:45:54.950 回答