比较具有相同项目但在随机位置的数组时如何返回true?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较具有相同项目但在随机位置的数组时如何返回true?相关的知识,希望对你有一定的参考价值。

比较两个数组。如果第一个数组与第二个数组具有相同的项,则返回true,即使它们位于不同的位置。这是两个可能的数组:

int[] arrayA = { 1, 2, 3 };
int[] arrayB = { 3, 2, 1 };

我只能找到数组中是否有一个数字。

答案

您可以使用SequenceEqual方法(LINQ)。

bool areEqual = arrayA.OrderBy(n => n).SequenceEqual(arrayB.OrderBy(n => n));
另一答案

解决此问题的一种方法是从每个数组创建一个HashSet<int>,然后使用.SetEquals(HashSet<int> hashSet)检查它们是否具有相同的值。

public static bool CompareArrays(int[] array1, int[] array2)
{
    // Create sets using Linq
    HashSet<int> set1 = array1.ToHashSet();
    HashSet<int> set2 = array2.ToHashSet();
    // Compare the sets with .SetEquals()
    return set1.SetEquals(set2);
}

以上是关于比较具有相同项目但在随机位置的数组时如何返回true?的主要内容,如果未能解决你的问题,请参考以下文章

一致地创建相同的随机 numpy 数组

随机选择算法

返回多个数组中相同位置的项目

给数组随机打乱

如果两个数组具有相同的ownerId,如何将它们比较在一起

数组介绍