AGu*_*ald 1 c# linq dictionary group-by
我有一个类型的词典列表<String, String>.词典有关键收入和月份.
典型的条目可能是:Revenue ="10.080",Month ="1/2011"
我想获得每个月的收入总额,所以我试过:
List<decimal> monthsTotals = data.Select(d => Convert.ToDecimal(d["Revenue"]))
.GroupBy(d => d["Month"]).ToList<decimal>();
Run Code Online (Sandbox Code Playgroud)
这不起作用.表达式d["Month"])加下划线.
无法将[]索引应用于"decimal"类型的表达式.
你的结果Select是刚刚的收入.你正在丢失所有其他信息.我怀疑你想要:
Dictionary<string, decimal> revenueByMonth =
data.GroupBy(d => d["Month"], d => decimal.Parse(d["Revenue"]))
.ToDictionary(group => group.Key, group => group.Sum());
Run Code Online (Sandbox Code Playgroud)
第一步创建IGrouping<string, decimal>- 即每个月,一系列收入值.
第二步是将Dictionary<string, decimal>组密钥(月份)作为字典密钥,并将组值的总和作为字典值,将其转换为a .