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

如何检查列表无空值?并修改LINQ代码先校验t.User非空

问题解答

一、检查列表中不存在空值的方法

分两种常见场景:

  • 检查列表本身不为null,且列表所有元素本身都不为null:
    bool hasNoNullElements = clientIds != null && !clientIds.Any(item => item == null);
    
  • 检查列表本身不为null,且列表所有元素的User属性都不为null:
    bool hasNoNullUser = clientIds != null && !clientIds.Any(item => item.User == null);
    

二、修改判断代码的方案

你原来的代码需要先校验t.User不为null,避免访问t.User.Email时出现空引用异常,只需在Any的条件中增加t.User != null的判断,利用C#的短路逻辑(&&会先判断左侧,若为false则直接返回,不会执行右侧)即可,修改后的代码如下:

var listA = (clientIds == null || !clientIds.Any(t => t.User != null && t.User.Email == userBody.Email));

逻辑说明:

  1. 先判断clientIds是否为null,如果是则直接返回true(和原逻辑一致);
  2. 若clientIds不为null,则遍历列表,只有当t.User不为null且Email匹配时,Any才会返回true;
  3. !Any(...)表示列表中没有符合条件的元素,最终赋值给listA,完全保留原逻辑的同时避免了空引用风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:23:28