首页 > 解决方案 > 如何将十进制变量转换为可空类型

问题描述

我有以下财产:

public decimal PaidAmount { get; set; }

以及与该属性相关的以下功能:

                var PreviousPaidAmount = _db.SEPayments.Where(v => v.Invoice == items).Select(c => c.PaidAmount).FirstOrDefault();
                SEPayment del = _db.SEPayments.Where(a => a.Invoice == items).FirstOrDefault();
                if (PreviousPaidAmount == null)
                {
                    break;
                }
                else
                {
                    PreviousPaidAmount = _db.SEPayments.Where(v => v.Invoice == items).Select(c => c.PaidAmount).FirstOrDefault();
                    var Paid = del.PaidAmount;
                    Paid -= PreviousPaidAmount;
                    _db.Entry(del).State = EntityState.Modified;
                    _db.SaveChanges();
                }

我想将变量 PreviousPaidAmount 转换为可为空的类型 decimal 而不对属性进行任何更改。我是初学者,任何帮助将不胜感激

标签: c#asp.net-mvclinq

解决方案


一种方法是将Select调用更改为:

.Select(c => (decimal?)c.PaidAmount)

这将使Select调用产生一个IEnumerable<decimal?>,这意味着FirstOrDefault它将null根据您的需要作为默认值产生。


推荐阅读