Есть ли способ AverageAsync
не генерировать исключение при перечислении как не элементах.
Не должно просто вернуть ноль?
Average
и AverageAsync
(а также Min
, Max
) вернут null
в пустом наборе, когда тип значения равен nullable . Если это не так, просто переведите его в соответствующий обнуляемый тип, используя оператор приведения C #.
Например, если в вашем примере тип x.Duration
равен int
, тогда используйте int?
cast:
var avgDuration = await projects.AverageAsync(x => (int?)x.Duration);
И если вы хотите получить 0 (ноль), когда исходный набор пуст, тогда просто примените ?? 0
к результату.