operator' - '不能应用于'decimal'类型的操作数和'Systems.Collections.Generic.IEnumerable <decimal> </decimal>

时间:2011-09-29 08:42:41

标签: c# visual-studio-2010

我有这个错误,我想要解决。

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;

可能是什么问题?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:7)

根据您的代码,mprAmount是一个列表,您无法从单个值中减去它。

如果您确定该列表只包含一个元素,那么您可以使用Single方法检索它:

var totalPAYE = x.Value - mprAmount.Single();

或者,更有可能:

var mprAmount = (from tt in taxtable select tt.U_MPR_amount).Single();

请注意,我已为Distinct更改了Single。使用两者都没有任何意义。