总和在空列表上失败

本文关键字:失败 列表 | 更新日期: 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();
}