我有一个IDictionary<string,int>,其中包含类别和各个计数的不同列表,数据看起来像这样:

分类|计数
-------------------
A | 2
B | 2
Z | 2
A_B | 1个
A_B_C | 5


我正在寻找一个查询,该查询求和以常见字母/字符串开头的类别的总数,因此从上面寻找的结果如下:

分类|计数
-------------------
A | 8 B | 2
Z | 2
A_B | 6 A_B_C | 5

最佳答案

var d = new Dictionary<string, int>()
{
    { "A", 2 },
    { "B", 2 },
    { "Z", 2 },
    { "A_B", 1 },
    { "A_B_C", 5 },
};

var d2 = d.Select(kvp => new KeyValuePair<string, int>(
                kvp.Key,
                d.Where(k => k.Key.StartsWith(kvp.Key))
                 .Sum(k => k.Value)))
          .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

关于c# - C#Linq IDictionary的总和查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5796303/

10-11 21:13