如何检查变量的空值

本文关键字:变量 空值 检查 何检查 | 更新日期: 2023-09-27 18:35:24

我正在使用PetaPoco Micro-ORM和C# 4.0。

下面的代码从数据库中检索一行:

var result = db.SingleOrDefault<TdUsers>(getUserQuery);

我想检查结果是否包含任何行,以及是否为空。最好的方法是什么?

如何检查变量的空值

if (result == null || result.Count() == 0) {
    // Checks whether the entire result is null OR
    // contains no resulting records.
}

我认为问题不在于您对null的检查,因为linq是延迟加载的。您的错误在于使用表达式 db.SingleOrDefault<TdUsers>(getUserQuery);

.Single<T>(expression) 不返回 null - 如果结果不返回任何值,则出错。 但是,如果表达式没有产生任何值,则.SingleOrDefault<T>(expression)返回 null 值 - 因此最好与 if (result == null) 类型检查结合使用,就像您在此处使用的那样。

var result = db.SingleOrDefault<TdUsers>(getUserQuery);

在上面的代码中,SingleOrDefault将返回null vale或指定的 泛型类型(在运行时已知)。

为了检查返回的值是否为空,您可以简单地使用

if(result!=null)
{
//do your code stuff 
}
else
{
//stuff do be done in case where result==null
}

你可以做:

result.ToList() // Convert result to a list
if (result.Any()) {
   // result is not null
}
 var v = result.ToList();

现在检查

if (v is not null)
{
}
else if (v.Count()>0)
{

}