C# 从求和中忽略NaN

C# 从求和中忽略NaN,c#,nan,C#,Nan,我想总结10个双变量,但是其中一些变量可能包含NaN。有没有一种方法可以从求和中忽略带NaN的。现在我有一个简单的加法,如下所示,但是它分配了SumLiq。。变量为NaN值 double SumLiqPerTimeStamp = l2_msg.size0 + l2_msg.size1 + l2_msg.size2 + l2_msg.size3 +l2_msg.size4 + l2_msg.size5 + l2_msg.size6 + l2_m

我想总结10个双变量,但是其中一些变量可能包含NaN。有没有一种方法可以从求和中忽略带NaN的。现在我有一个简单的加法,如下所示,但是它分配了SumLiq。。变量为NaN值

double SumLiqPerTimeStamp = l2_msg.size0 + l2_msg.size1 + l2_msg.size2 + l2_msg.size3
                           +l2_msg.size4 + l2_msg.size5 + l2_msg.size6 + l2_msg.size7 +  l2_msg.size8 + l2_msg.size9;

是否有一种快速有效的方法来检查NaN,而无需对每个NaN执行if语句?

n您可以将它们放入数组中,然后得到总和:


n可能您可以将它们放入一个数组中,然后得到总和:


如果输入为NaN,则使用返回零的扩展方法:

public static double Value(this double input)
{
    return input == Double.NaN ? 0 : input;
}
然后将您的值相加为

var sum = l2_msg.size0.Value() + l2_msg.size1.Value() + ...

如果输入为NaN,则使用返回零的扩展方法:

public static double Value(this double input)
{
    return input == Double.NaN ? 0 : input;
}
然后将您的值相加为

var sum = l2_msg.size0.Value() + l2_msg.size1.Value() + ...

将属性大小添加到您的msg类型,它将在返回前检查值,在NaN的情况下返回0。

将属性大小添加到您的msg类型,它将在返回前检查值,在NaN的情况下返回0。

我无法编辑它是用于供应商产品@Eugene Sh的api的类。您始终可以制作一个包装器,但这可能是一个过冲。我无法编辑该类。这是我用于供应商产品@Eugene Sh的api。您可以随时制作包装器,但可能是一个过冲。