C# 比较两个数组中的内容是否相同的算法

本文介绍三种比较两个整型数组内容是否相同的方法:使用循环逐个元素对比、利用Linq查询和SequenceEqual方法。这些方法有助于确定数组内容的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里要比较的是两个数组中的内容是否相同,以int数组为例

以下示例返回false 因为是比较相同索引的值

int[] Arraya = new[] { 1, 2, 3, 4, 5 };

int[] Arrayb = new[] { 5, 3, 2, 1, 4 };

以上两个数组内的值是相同的,都是1,2,3,4,5.具体的算法如下。

第一种就是最原始的方法,使用循环。

public static bool compareArr(int[] Arraya,int[] Arrayb){

bool areEqual = true;

            if (Arraya.Length != Arrayb.Length)
            {
                areEqual = false;
            }
            else
            {
                for (int i = 0; i < Arraya.Length; i++)
                {
                    if (Arraya[i] != Arrayb[i])
                    {
                        areEqual = false;
                        break;
                    }
                }
            }

            if (areEqual)
            {
                Console.WriteLine("两个数组的内容相同");
            }
            else
            {
                Console.WriteLine("两个数组的内容不同");
            }

}

第二种方法可以借助Linq查询来比较。

using System.Linq;

public static bool compareArr(int[] arr1, int[] arr2)

        {

            var q = from a in arr1 join b in arr2 on a equals b select a;

            bool flag = arr1.Length == arr2.Length && q.Count() == arr1.Length;

            return flag;//内容相同返回true,反之返回false。

        }

第三种

int[] Arraya = new[] { 1, 2, 3, 4, 5 };
        int[] Arrayb = new[] { 5, 3, 2, 1, 4 };

        bool areEqual = Arraya.SequenceEqual(Arrayb);

        if (areEqual)
        {
            Console.WriteLine("两个数组的内容相同");
        }
        else
        {
            Console.WriteLine("两个数组的内容不同");
        }

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值