c# - 如何检查 var 的空值?

标签 c# .net c#-4.0 .net-4.0 petapoco

我正在使用带有 C# 4.0 的 PetaPoco Micro-ORM。

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

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)但是,如果表达式没有值,则返回空值 - 因此最好与 if (result == null) 结合使用类型检查,正如您在此处使用的那样。

关于c# - 如何检查 var 的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753661/

相关文章:

c# - WCF - 自定义绑定(bind)的配置

c# - LINQ to entities - 构建 where 子句以测试多对多关系中的集合

c# - 安排单火事件

c# - 我的 C# 评分程序一直输出相同的结果

c# - 将匿名类型正确声明为数组以保持作用域

c#-4.0 - 如何在setup工程中写入app.config并在程序中使用

c# - 垃圾收集器是否会在 .NET 中的异步调用期间销毁临时未引用的对象?

c# - Mono 和 appdomain 安全/权限集

c# - 运算符 "<<"在 C# 中是什么意思?

.Net 字典和等号的覆盖