C# 如何检查;id";如果为null或空,则默认值为0或空字符串?

C# 如何检查;id";如果为null或空,则默认值为0或空字符串?,c#,linq,C#,Linq,我在C#中使用LINQ编写代码。代码工作正常,但当我尝试测试时,我没有得到任何值,因为没有数据,我知道如果id为null或为空,它将跳过LINQ查询。如果跳过LINQ查询,如何将查询结果的值设置为零或空字符串 var Rs1 = _context.DwPropertyDetails.Where(x => x.LandId == id && x.TransactionPrice != null) .Select(x => new

我在C#中使用LINQ编写代码。代码工作正常,但当我尝试测试时,我没有得到任何值,因为没有数据,我知道如果id为null或为空,它将跳过LINQ查询。如果跳过LINQ查询,如何将查询结果的值设置为零或空字符串

var  Rs1 = _context.DwPropertyDetails.Where(x => x.LandId == id && x.TransactionPrice != null)
                    .Select(x => new
                    {
                        Studio = x.FlatType.ToLower() == studio.ToLower() ? x.TransactionPrice : 0,
                        OneBedroom = x.FlatType.ToLower() == onebedroom.ToLower() ? x.TransactionPrice : 0,
                        TwoBedroom = x.FlatType.ToLower() == twobedroom.ToLower() ? x.TransactionPrice : 0,
                        ThreeBedroom = x.FlatType.ToLower() == threebedroom.ToLower() ? x.TransactionPrice : 0,
                        Total = x.TransactionPrice
                    }).Select(a => new
                    {
                        a.Studio,
                        a.OneBedroom,
                        a.TwoBedroom,
                        a.ThreeBedroom,
                        a.Total,
                        Dummy = "x"
                    }).GroupBy(a => new { a.Dummy })
                    .Select(g => new
                    {
                        Rs1Clm2 = totalTransAmount,
                        Rs1Clm3 = g.Sum(p => p.Studio),
                        Rs1Clm4 = g.Sum(p => p.OneBedroom),
                        Rs1Clm5 = g.Sum(p => p.TwoBedroom),
                        Rs1Clm6 = g.Sum(p => p.ThreeBedroom),
                        Rs1Clm7 = g.Sum(p => p.Total),
                    });
好吧,我在风景区试试看

<tbody>
            @if (Model == null || string.IsNullOrEmpty(Model.Rs1Vms.ToString()) || string.IsNullOrWhiteSpace(Model.Rs1Vms.ToString()))
            {
                <tr>
                    <td>Total Transaction Amount</td>
                    <td>0</td>
                    <td>0</td>
                    <td>0</td>
                    <td>0</td>
                    <td>0</td>
                </tr>
            }
            else
            {
                foreach (var a in Model.Rs1Vms)
                {
                    <tr>
                        <td>@Html.DisplayFor(model => a.Rs1Vm2)</td>
                        <td>@($"{a.Rs1Vm3:N0}")</td>
                        <td>@($"{a.Rs1Vm4:N0}")</td>
                        <td>@($"{a.Rs1Vm5:N0}")</td>
                        <td>@($"{a.Rs1Vm6:N0}")</td>
                        <td>@($"{a.Rs1Vm7:N0}")</td>
                    </tr>
                }
            }
        </tbody>

@if(Model==null | | string.IsNullOrEmpty(Model.Rs1Vms.ToString())| | string.IsNullOrWhiteSpace(Model.Rs1Vms.ToString())
{
交易总额
0
0
0
0
0
}
其他的
{
foreach(Model.Rs1Vms中的变量a)
{
@DisplayFor(model=>a.Rs1Vm2)
@($“{a.Rs1Vm3:N0}”)
@($“{a.Rs1Vm4:N0}”)
@($“{a.Rs1Vm5:N0}”)
@($“{a.Rs1Vm6:N0}”)
@($“{a.Rs1Vm7:N0}”)
}
}

您可以使用DefaultIfEmpty执行此任务

var Rs2 = Rs1.DefaultIfEmpty(new
                    {
                        Rs1Clm2 = 0,
                        Rs1Clm3 = 0,
                        Rs1Clm4 = 0,
                        Rs1Clm5 = 0,
                        Rs1Clm6 = 0,
                        Rs1Clm7 = 0,
                    });

您可以使用DefaultIfEmpty执行此任务

var Rs2 = Rs1.DefaultIfEmpty(new
                    {
                        Rs1Clm2 = 0,
                        Rs1Clm3 = 0,
                        Rs1Clm4 = 0,
                        Rs1Clm5 = 0,
                        Rs1Clm6 = 0,
                        Rs1Clm7 = 0,
                    });

我以前试过这个。但是在风景区呢?我以前试过这个。但是在风景中呢?