如何将十进制变量转换为可空类型
Posted
技术标签:
【中文标题】如何将十进制变量转换为可空类型【英文标题】:How to convert a decimal variable to nullable type 【发布时间】:2021-10-28 09:20:51 【问题描述】:我有以下属性:
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,而不对属性进行任何更改。我是初学者,任何帮助将不胜感激
【问题讨论】:
你的意思是你想让PreviousPaidAmount
成为Nullable<decimal>
?
是的,我希望它可以为空而不改变模型,即属性
在 Select 中,将 c.PaidAmount 转换为 decimal?
【参考方案1】:
一种方法是将Select
调用更改为:
.Select(c => (decimal?)c.PaidAmount)
这将使Select
调用产生IEnumerable<decimal?>
,这意味着FirstOrDefault
将产生null
作为默认值,如您所愿。
【讨论】:
【参考方案2】:代替var PreviousPaidAmount
,请写decimal? PreviousPaidAmount
。
编码愉快:)
【讨论】:
以上是关于如何将十进制变量转换为可空类型的主要内容,如果未能解决你的问题,请参考以下文章