在Java中,arrays .equals()允许轻松地比较两个基本数组的内容(重载可用于所有基本类型)。

c#中有这样的东西吗?在c#中是否存在比较两个数组内容的“神奇”方法?


当前回答

对于某些应用可能更好:

string.Join(",", arr1) == string.Join(",", arr2)

其他回答

对于某些应用可能更好:

string.Join(",", arr1) == string.Join(",", arr2)

你可以使用Enumerable.SequenceEqual。这适用于任何IEnumerable<T>,而不仅仅是数组。

你可以使用Enumerable。相交:

int[] array1 = new int[] { 1, 2, 3, 4,5 },
      array2 = new int[] {7,8};

if (array1.Intersect(array2).Any())
    Console.WriteLine("matched");
else
    Console.WriteLine("not matched");

对于单元测试,可以使用CollectionAssert。AreEqual而不是assert。AreEqual。

这可能是最简单的方法。

可列举的使用。LINQ中的SequenceEqual。

int[] arr1 = new int[] { 1,2,3};
int[] arr2 = new int[] { 3,2,1 };

Console.WriteLine(arr1.SequenceEqual(arr2)); // false
Console.WriteLine(arr1.Reverse().SequenceEqual(arr2)); // true