c# 判断两个数组是否相等的方法

 我来答
iceser
2009-08-14 · TA获得超过2708个赞
知道大有可为答主
回答量:695
采纳率:100%
帮助的人:446万
展开全部
using System;
using System.Reflection;

namespace DebugConsole
{
class Program
{
static void Main(string[] args)
{
string[] s1 = { "a", "bcd", "xx" };
string[] s2 = { "a", "bcd", "xx" };
string[] s3 = { "a", "bcd", "xx1" };

Console.WriteLine("s1 == s2 ---> {0}", ArrayEqals(s1, s2));
Console.WriteLine("s2 == s3 ---> {0}", ArrayEqals(s2, s3));

int[] n1 = { 1, 2, 3 };
int[] n2 = { 1, 2, 3 };
int[] n3 = { 2, 2, 3 };

Console.WriteLine("n1 == n2 ---> {0}", ArrayEqals(n1, n2));
Console.WriteLine("n2 == n3 ---> {0}", ArrayEqals(n2, n3));

Console.ReadKey();

}

public static bool ArrayEqals<T>(T[] array1, T[] array2)
{
if (array1 == array2) return true;
if (array1 == null || array2 == null) return false;
if (array1.Length != array1.Length) return false;
Type equatable = typeof(T).GetInterface("IEquatable`1");
if (equatable != null)
{
MethodInfo equalMethod = equatable.GetMethod( "Equals", BindingFlags.Instance | BindingFlags.Public );
for (int i = 0; i < array1.Length; i++)
{
if (!(bool)equalMethod.Invoke(array1[i], new object[] { array2[i] })) return false;
}
return true;
}
Type comparable = typeof(T).GetInterface("IComparable`1");
if (comparable != null)
{
MethodInfo compareMethod = comparable.GetMethod("CompareTo", BindingFlags.Instance | BindingFlags.Public);
for (int i = 0; i < array1.Length; i++)
{
if (!(bool)compareMethod.Invoke(array1[i], new object[] { array2[i] })) return false;
}
return true;
}
for (int i = 0; i < array1.Length; i++)
{
if (!array1[i].Equals(array2[i])) return false;
}
return true;
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BossWanna
推荐于2016-06-26 · TA获得超过119个赞
知道答主
回答量:140
采纳率:0%
帮助的人:71.6万
展开全部
用个循环语句
string a[];
string b[];

bool bo;
for(int i=0;i<n;i++)
{
if(a[i]==b[i])
bo=true;
else
{
bo=false;
break;
}
}

//得到的bo就能判断了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hui402066387
2009-08-14 · TA获得超过713个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:303万
展开全部
先判断它的长度是否相等,然后再遍历数组中的元素,看它是否相等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
解燎3e
2009-08-14 · TA获得超过206个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:327万
展开全部
第一步,判断数组长度是否相等
第二步,使用foreach循环遍历,判断每一个元素是否相等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式