我有IDictionary<string,int>一个不同的类别和相应的计数列表,数据看起来像这样:
Category | Count ------------------- A | 2 B | 2 Z | 2 A_B | 1 A_B_C | 5
我正在寻找一个查询,它总结以普通字母/字符串开头的类别数,所以从上面我要找的结果如下:
Category | Count ------------------- A | 8 <- (a sum of A, A_B, A_B_C) B | 2 Z | 2 A_B | 6 <- (a sum of A_B, A_B_C) 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);
Run Code Online (Sandbox Code Playgroud)