首页 > 解决方案 > 比较具有相同项目但位于随机位置的数组时如何返回true?

问题描述

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

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

我只能找到arrayB 在arrayA 中是否有一个数字。

标签: c#arrayscompare

解决方案


解决此问题的一种方法是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);
}

推荐阅读