检查空变量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" />
}
}
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())