如何找出两个字符串数组是否等于另一个[重复项]

问题描述

||                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        
static bool ArraysEqual<T>(T[] a1,T[] a2)
{
    if (ReferenceEquals(a1,a2))
        return true;

    if (a1 == null || a2 == null)
        return false;

    if (a1.Length != a2.Length)
        return false;

    EqualityComparer<T> comparer = EqualityComparer<T>.Default;
    for (int i = 0; i < a1.Length; i++)
    {
        if (!comparer.Equals(a1[i],a2[i])) return false;
    }
    return true;
}
    ,        如果您可以访问Linq,请使用
SequenceEqual
。否则,只需提供代码以首先检查数组是否长度相等,然后检查每个索引处的项是否相等。     ,        在StackOverflow上查看以下内容。我相信您正在寻找以下内容。在C#中比较数组
var arraysAreEqual = Enumerable.SequenceEqual(array1,array2);
    ,        您可以像这样使用.NET4功能
Array.IStructuralEquatable.Equals
IStructuralEquatable equ = array1;
bool areEqual = equ.Equals(array2,EqualityComparer<string>.Default);
这也可以写在一行上:
bool areEqual = (array1 as IStructuralEquatable).Equals(array2,EqualityComparer<string>.Default);
使用ѭ6的优点是允许使用自定义比较器。