C# 同一λ中的两个值之和?

C# 同一λ中的两个值之和?,c#,linq,lambda,C#,Linq,Lambda,我有下面的LINQ查询,其中我必须将.Sum分为不同的调用,当我将它们组合在一起时,我得到一个NaN。这不起作用: var rejectRate = (results.Sum(x => x.TraysRejectedDay / x.TraysProcessedDay)) * 100; 这确实有效: var traysProcessed = results.Sum(x => x.TraysProcessedDay); var rejectRate = (results.Sum(x =

我有下面的LINQ查询,其中我必须将
.Sum
分为不同的调用,当我将它们组合在一起时,我得到一个
NaN
。这不起作用:

var rejectRate = (results.Sum(x => x.TraysRejectedDay / x.TraysProcessedDay)) * 100;
这确实有效:

var traysProcessed = results.Sum(x => x.TraysProcessedDay);
var rejectRate = (results.Sum(x => x.TraysRejectedDay / traysProcessed)) * 100;

这只是LINQ的限制还是我做错了什么?这两个字段的数据类型相同(
double

这是两个不同的查询。前者将每个
TraysRejectedDay
除以
TraysProcessedDay
并返回总和。后者将每个
TraysRejectedDay
除以所有
TraysProcessedDay
的总和,并返回总和

例如,如果
TraysProcessedDay
可以是0,你就要除以0。也许你想忽略它们:

var rejectRate = (results
    .Where(x => x.TraysProcessedDay > 0)
    .Sum(x => x.TraysRejectedDay / x.TraysProcessedDay)) * 100;

这是两个不同的查询。前者将每个
TraysRejectedDay
除以
TraysProcessedDay
并返回总和。后者将每个
TraysRejectedDay
除以所有
TraysProcessedDay
的总和,并返回总和。
TraysProcessedDay
是否可以为零?这是否会给出一个
DivideByZeroException
而不是
NaN
?@Default:from:“当操作的结果未定义时,方法或运算符返回NaN。例如,将零除以零的结果是NaN,”