我试图找出处理此问题的最佳方法,我有ienumerable.sum null异常。
基本上我有一个类将其子对象的总和作为返回值。
这样的事情:
Part Class:
public ICollection<ContractLineItem> ContractLineItems { get; set; }
public float TotalReceiptSpendLong { get {
return ContractLineItems.Sum(s => s.TotalReceiptSpend);
} }
contractlineitems类包含一个收货类的ICollection,该收货类在contractLineItems TotalReceiptSpend浮点数中合计。除非合同项目没有收据,否则此工作正常。然后抛出一个null异常。有没有办法处理这个问题?
答案 0 :(得分:0)
考虑使用Null-conditional Operators (C# and Visual Basic)和?? Operator (C# Reference)
return ContractLineItems?.Sum(s => s?.TotalReceiptSpend ?? 0) ?? 0;
这样,如果上面引用的任何变量都为null,它将默认为零(0
),并在调用Sum
时避免空引用错误