检查空变量c#

本文关键字:变量 检查 | 更新日期: 2023-09-27 17:50:10

我创建了一个变量,用于检查数据库中是否存在一行。然而,当我将变量放入if语句中检查它是否为空,变量是否为空时,它总是转到else,而不是继续if语句。

是否有另一种方法来检查变量是否为null而不是== null ?

var following = objCtx.Followusers.Where(c => c.User1ID == currentUser.Id || c.User2ID == cus.Id);
if (following == null)
{
    using (Html.BeginForm("Followruser", "Users"))
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)
        @Html.Hidden("Id", Id)
        <input type="submit" value="follow" class="btn btn-default" />
    }
}
else
{
    using (Html.BeginForm("unfollowruser", "Users"))
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)
        @Html.Hidden("Id", Id)
        <input type="submit" value="following" class="btn btn-default" />
    }
}

检查空变量c#

Where操作符永远不会返回null。如果您只是想检查记录是否存在,那么使用该方法也是错误的。我将使用Any代替。

bool following = objCtx.Followusers.Any(
    c => c.User1ID == currentUser.Id || c.User2ID == cus.Id);

改为:

var following = objCtx.Followusers.Where(c => c.User1ID == currentUser.Id || c.User2ID == cus.Id).SingleOrDefault();

如果没有找到行,应该返回NULL。

如果您想保留您所提供的内容,您还可以计算谓词返回的值的数量。

if (following != null && following.Count < 1)

返回的对象永远不会为空,但它的值可能为空。如果没有,使用'FirstOrDefault()'使结果为空:

var following = objCtx.Followusers.Where(c => c.User1ID == currentUser.Id || c.User2ID == cus.Id).FirstOrDefault();

或者询问结果是否有值:

if(following.Any())