总和在空列表上失败
本文关键字:失败 列表 | 更新日期: 2023-09-27 18:31:30
这是我的列表:
var MaxItemCountFromRegItems = RegisteredItems.MyRegisteredItems
.Where(s => s.ItemID == _itemID)
.Sum(s => s.Posted);`
它失败并显示错误:
异常:System.ArgumentNull异常:值不能为空。
它的明显错误发生是因为集合是空的。我想知道如何避免它。
使用 DefaultIfEmpty
:
var MaxItemCountFromRegItems = RegisteredItems.MyRegisteredItems
.Where(s => s.ItemID == _itemID)
.Select(c=>c.Posted)
.DefaultIfEmpty(0).Sum();
试试这个:
if (registeredItems.MyRegisteredItems != null)
{
var maxItemCountFromRegItems = registeredItems.MyRegisteredItems
.Where(s => s.ItemID == _itemID)
.Sum(s => s.Posted);
}
干杯。
正确答案是:
if(RegisteredItems.MyRegisteredItems != null)
{
var SumOfItems = RegisteredItems.MyRegisteredItems
.Where(x => x.ItemID == _itemID)
.Select(o=>o.AmountField)
.DefaultIfEmpty(0).Sum();
}