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

C#如何实现ArrayCompare方法判断两个int数组是否包含完全相同元素

C# 数组比较方法ArrayCompare实现方案

完整实现代码

static bool ArrayCompare(int[] i, int[] j)
{
    // 处理空引用边界情况,避免空引用异常
    if (ReferenceEquals(i, j)) return true;
    if (ReferenceEquals(i, null) || ReferenceEquals(j, null)) return false;
    // 长度不一致直接判定不相等
    if (i.Length != j.Length) return false;
    // 逐索引对比元素
    for (int o = 0; o < i.Length; o++)
    {
        // 任意位置元素不等直接返回false
        if (i[o] != j[o])
        {
            return false;
        }
    }
    // 所有校验都通过返回true
    return true;
}

逻辑说明

  • 空引用判断:如果两个数组指向同一个对象(包括同时为null),直接返回true;如果仅其中一个为null,直接返回false,避免后续访问Length属性触发异常
  • 长度校验:长度不同的数组必然不相等,直接返回false
  • 逐元素对比:按索引逐个对比对应位置的元素,只要存在任意一位元素不同,立刻终止对比返回false
  • 最终返回true:只有长度相等、所有位置元素都相等时才会走到该逻辑分支,返回true

如果你能保证调用方法时传入的两个数组都不为null,也可以用基于你原有代码的简化补全版本:

static bool ArrayCompare(int [] i , int [] j)
{
    if (i.Length == j.Length)
    {
        for (int o = 0; o < i.Length; o++)
        {
            // 补全的对比逻辑
            if(i[o] != j[o])
            {
                return false;
            }
        }
        // 所有元素对比完成后才返回true
        return true;
    }
    return false;
}

注意:简化版本传入null数组会触发空引用异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:06:04