如何比较c#中的两个数组并找到数组的完全匹配

时间:2013-12-19 07:33:42

标签: c# c#-4.0

我想在c#中比较两个数组。如果匹配则转到if条件否则转到else条件。我们怎样才能在c#中做到这一点。

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

我想比较像

这样的两个数组
if(numbers == numbers2){
   do something
}else{
   do something
}

2 个答案:

答案 0 :(得分:11)

您可以使用Enumerable.SequenceEqual()扩展名方法。它完全符合您的要求:

if (numbers.SequenceEqual(numbers2)) {
    // do something
} else {
    // do something else
}

答案 1 :(得分:0)

您可以为数组创建扩展函数,它接受输入另一个数组对象,然后使用HashSet您可以比较两个数组。喜欢 -

if (numbers.ArrayEqual(number2){
// do this
}
else{
// do that
}

function static bool ArrayEqual(this int[] a, int []b)
{ 

  return a.Length == b.Length 
                         && new HashSet<string>(a).SetEquals(b);
}