Результат вашего Select
равен всего дохода. Вы теряете всю остальную информацию. Я подозреваю, что вы хотите:
Dictionary<string, decimal> revenueByMonth =
data.GroupBy(d => d["Month"], d => decimal.Parse(d["Revenue"]))
.ToDictionary(group => group.Key, group => group.Sum());
На первом шаге создается IGrouping<string, decimal>
- то есть для каждого месяца последовательность значений дохода.
Второй шаг преобразует это в Dictionary<string, decimal>
, принимая ключ группы (месяц) в качестве ключа словаря, а сумму значений группы в качестве значения словаря.