Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ Null返回0_C#_.net_Linq_Nullable - Fatal编程技术网

C# LINQ Null返回0

C# LINQ Null返回0,c#,.net,linq,nullable,C#,.net,Linq,Nullable,我有以下LINQ查询。要检查传入值是否为null,我使用?(示例:)。这样,即使值为null,查询也可以继续。但是,如何返回0而不是返回空值?我在代码的下游使用这些值,如果为null,则抛出一个错误 var query = referenceDt.AsEnumerable() .Where(results => comp(results.Field<decimal?>("OFR_Percent"), ofrPercent) &&

我有以下LINQ查询。要检查传入值是否为null,我使用
(示例:
)。这样,即使值为null,查询也可以继续。但是,如何返回0而不是返回空值?我在代码的下游使用这些值,如果为null,则抛出一个错误

var query = referenceDt.AsEnumerable()
    .Where(results => comp(results.Field<decimal?>("OFR_Percent"), ofrPercent) &&
                      results.Field<int?>("ComputeEmptyNodeCount") <= nodeCount)
    .OrderBy(results => results.Field<string>("Cluster"))
    .Select(results => new
    {
        ServerGroup= results.Field<string>("Cluster"),
        OOS_Percent = results.Field<decimal?>("OOS_Percent"),
        OutOfServiceCores = results.Field<int?>("OutOfServiceCores"),
        OFR_Percent = results.Field<decimal>("OFR_Percent"),
        OFR_Count = results.Field<int>("OutForRepairNodeCount"),
        RawTotalNodes = results.Field<int>("RawTotalNodes")
    });
var query=referenceDt.AsEnumerable()
其中(结果=>comp(结果字段(“OFR_百分比”),OFR百分比)&&
results.Field(“computemptynodecount”)results.Field(“Cluster”))
.选择(结果=>新建)
{
ServerGroup=results.Field(“集群”),
OOS_百分比=结果字段(“OOS_百分比”),
OutOfServiceCores=results.Field(“OutOfServiceCores”),
OFR_百分比=结果字段(“OFR_百分比”),
OFR_计数=结果字段(“OutForRepairNodeCount”),
RawTotalNodes=results.Field(“RawTotalNodes”)
});
您可以使用(??)运算符。如果左操作数不为空,则返回左操作数,否则返回右操作数

.Select(results => new
{
    ServerGroup= results.Field<string>("Cluster") ?? "",
    OOS_Percent = results.Field<decimal?>("OOS_Percent")?? 0,
    OutOfServiceCores = results.Field<int?>("OutOfServiceCores") ?? 0,
    OFR_Percent = results.Field<decimal>("OFR_Percent"),
    OFR_Count = results.Field<int>("OutForRepairNodeCount"),
    RawTotalNodes = results.Field<int>("RawTotalNodes")
});
。选择(结果=>新建
{
ServerGroup=results.Field(“集群”)??“,
OOS_百分比=结果字段(“OOS_百分比”)??0,
OutOfServiceCores=结果字段(“OutOfServiceCores”)??0,
OFR_百分比=结果字段(“OFR_百分比”),
OFR_计数=结果字段(“OutForRepairNodeCount”),
RawTotalNodes=results.Field(“RawTotalNodes”)
});
结果字段(“OutOfServiceCores”)??0等。