c# - 比较具有相同项目但位于随机位置的数组时如何返回true?
问题描述
比较两个数组。如果第一个数组与第二个数组具有相同的项,则返回 true,即使它们位于不同的位置。这里有两个可能的数组:
int[] arrayA = { 1, 2, 3 };
int[] arrayB = { 3, 2, 1 };
我只能找到arrayB 在arrayA 中是否有一个数字。
解决方案
解决此问题的一种方法是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);
}
推荐阅读
- performance - 为谷歌表单答案提供几张谷歌表格与只有一张表格接收所有答案更好吗?
- android - Android Studio 错误:java.net.SocketException:连接重置
- javascript - 如何使用 Mapbox 表达式来切换图层类样式
- php - 尽管 Laravel 版本符合包要求,为什么我不能安装包?
- javascript - 点击时展开和折叠 TR 标签 - 文件夹树结构
- google-cloud-platform - 我的云服务器上的数百次点击
- python - 如何在逐行附加到python数据帧时跳过/忽略行的空字段?
- javascript - moment js 两个 datetimepicker 时间比较
- wcf - IIS 上托管的 WCF - 如何获取同一应用程序池下各个服务的 CPU 和内存利用率
- javascript - 在 React 有状态组件中调用 setInterval 方法时日期对象未更新