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

C#:数组组含Null时如何判断数组长度是否不匹配

解决字符串数组长度比较时的空引用异常问题

原代码在数组集合包含null元素时会触发空引用异常,因为直接访问x.Length会报错。同时需要调整逻辑,满足以下场景时lengthMismatch为false:

  • 存在部分(非全部)数组为null
  • 一个或多个数组的长度不相等

修改后的代码

string[][] allMyArrays = new string[][] { myArray1, myArray2, myArray3 };

int nullArrayCount = allMyArrays.Count(arr => arr == null);
var validLengths = allMyArrays.Where(arr => arr != null).Select(arr => arr.Length);

// 核心逻辑判断
lengthMismatch = nullArrayCount switch
{
    // 全部数组都是null,无长度不匹配问题
    var count when count == allMyArrays.Length => false,
    // 存在部分null数组,直接返回false
    var count when count > 0 => false,
    // 无null数组,检查所有长度是否一致
    _ => validLengths.Distinct().Count() == 1
};

逻辑说明

  1. 先统计集合中null数组的数量,同时提取所有非null数组的长度
  2. 分三种情况处理:
    • 若所有数组都是null,不存在长度不匹配,故lengthMismatch = false
    • 若存在部分null数组(非全部),直接满足条件设置lengthMismatch = false
    • 若没有null数组,检查所有数组长度是否唯一(即所有长度相同),相同则lengthMismatch = true,否则为false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:00:56