оператор '-' не может быть применен к операндам типа 'decimal' и 'Systems.Collections.Generic.IEnumerable <decimal> - PullRequest
3 голосов
/ 29 сентября 2011

У меня есть ошибка, которую я пытаюсь решить.

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 Ответ

7 голосов
/ 29 сентября 2011

Согласно вашему коду, mprAmount - это список, вы не можете вычесть его из одного значения.

Если вы уверены, что список содержит только один элемент, вы можете получить его, используя Single метод:

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

Или, более вероятно:

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

Обратите внимание, что я изменил Distinct для Single.Использование обоих не имеет никакого смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...