You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查List对象是否为Null以避免触发空异常?

VB.NET 空值判断解决方案

核心语法

VB中判断引用类型是否为空统一使用Is Nothing,判断非空则用IsNot Nothing,不能直接将对象变量放在If条件后当做布尔值判断,会直接抛出运行时异常。


现有代码问题说明

你现有代码第一行Dim list As New List(Of ContactU)完全冗余,下一行立刻对list重新赋值,之前New生成的空列表会被直接丢弃,没有任何意义。此外你直接调用list.Count的逻辑存在空引用风险:如果list本身是Nothing,调用Count属性会直接抛出空异常。


修正后的完整代码

' 先判断上层数据源不为空,避免调用ToList方法时抛出空异常
If resource.ContactUs IsNot Nothing Then
    Dim list = resource.ContactUs.ToList()
    ' 同时判断列表本身不为空、且存在元素
    If list IsNot Nothing AndAlso list.Count > 0 Then
        For Each item In list
            ' 单个元素非空判断
            If item IsNot Nothing Then
                ' 此处写你的业务逻辑
            End If
        Next
    End If
End If

补充说明

  • 如果你使用的是 Visual Basic 14 及更高版本,可以用空条件运算符简化判断:If list?.Count > 0 Then,list为Nothing时list?.Count会返回Nothing,和数值比较的结果为False,无需单独判断list是否为Nothing。
  • 不要混淆Nothing和DBNull.Value,后者仅用于处理数据库返回的空值场景,不适用普通业务对象的空值判断。

内容的提问来源于stack exchange,提问作者user12280303

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:54:03