问题:
在一个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