首页 > 编程语言 >C# LINQ中使用聚合函数报错 Sequence contains no elements

C# LINQ中使用聚合函数报错 Sequence contains no elements

时间:2023-08-02 15:02:20浏览次数:44  
标签:elements no Average contains 报错 Sequence

问题:

在一个linq查询中使用了平均值聚合函数Average,结果报错 Sequence contains no elements (序列不包含任何元素)
也就是说,使用某些linq的函数时,如果值不存在是会报错的,比如:

First()
Single()
FirstAsync()
SingleAsync()
Last()
LastAsync()
Max()
Min()
Average()

等,

解决方案:

使用空判断的方法:
比如不确定是否有值的情况不使用First()和Single(),而是使用FirstOrDefault()和SingleOrDefault()
如Average()可以在之前加 DefaultIfEmpty()

var avg=list.DefaultIfEmpty().Average(p=>p.age);

标签:elements,no,Average,contains,报错,Sequence
From: https://www.cnblogs.com/qingheshiguang/p/17600662.html

相关文章