我有这个错误,我想要解决。
Visual Studio 2010将错误提供为:
operator '-' cannot be applied to operands of type 'decimal' and 'Systems.Collections.Generic.IEnumerable<decimal>
我的代码:
// Step 5: Retrieve MPR amount and deduct form Gross Tax Dictionary Per-Employee
//Query database
var taxtable = taxTableService.GetAllTaxTables();
var mprAmount = (from tt in taxtable select tt.U_MPR_amount).Distinct();
Dictionary<int, decimal> paye = new Dictionary<int, decimal>();
grossTaxDictionary.ToList().ForEach(x =>
{
var totalPAYE = x.Value - mprAmount;
paye.Add(x.Key, totalPAYE);
});
在我的数据库中,字段U_MPR_amount是小数,因此是x.Value。
错误显示在第x.Value - mprAmount;
行
可能是什么问题?任何帮助表示赞赏。
答案 0 :(得分:7)
根据您的代码,mprAmount
是一个列表,您无法从单个值中减去它。
如果您确定该列表只包含一个元素,那么您可以使用Single
方法检索它:
var totalPAYE = x.Value - mprAmount.Single();
或者,更有可能:
var mprAmount = (from tt in taxtable select tt.U_MPR_amount).Single();
请注意,我已为Distinct
更改了Single
。使用两者都没有任何意义。