2016-12-29 48 views
0

我的linq查询有问题。我得到一个空引用异常。我的代码有什么问题?我做空检查,但仍然得到一个例外。C#.Net Linq查询和空对象

我在做什么错?

Math.Round(invoiceData?.Lines?.Sum(x => x.Amount) ?? 0, 2); 

在此先感谢。

+1

我看不出这是一个重复?我知道nullReferenceException是什么。 – mrjasmin

+0

如果'Amount'为null会怎么样?尝试使用'.Sum(v =>(decimal?)v.Amount)?? 0)' –

回答

0

您是否尝试过做这样:

Math.Round(invoiceData?.Lines?.Sum(x => x.Amount ?? 0), 2); 
+0

嗨!这是行不通的。金额是一个小数,您不能在那里使用空合并运算符。 – mrjasmin

+1

啊好的...所以也许尝试类似:Math.Round(invoiceData?.Lines?.Where(item => item!= null && item.Amount!= null).Sum(x => x.Amount)? ?0,2); –