有一个数组List<Object1> objects1;。它充满了元素
还有另一个数组List<Object1> objects2;。它也充满了元素
程序需要检查两个数组中的元素是否相同。我愿意objects1.Equals(objects2)。
总是返回false
我想也许 List 数组本身就是一个引用类型,然后事实证明数组的元素永远不会匹配。
我向更有经验的匿名者寻求帮助:如何检查两个数组的元素是否相同?
有一个数组List<Object1> objects1;。它充满了元素
还有另一个数组List<Object1> objects2;。它也充满了元素
程序需要检查两个数组中的元素是否相同。我愿意objects1.Equals(objects2)。
总是返回false
我想也许 List 数组本身就是一个引用类型,然后事实证明数组的元素永远不会匹配。
我向更有经验的匿名者寻求帮助:如何检查两个数组的元素是否相同?
尝试
据我记得,Equals 比较了内存中非基本类型的存储地址
要使其适用于列表,您需要重新定义它,或者有 2 个选项
编写一个带有循环的函数,其中所有元素都进行比较,等等,但是你必须修改这个,因为 2 个相同的列表可以包含不同顺序的元素,这意味着你需要在比较之前对它们进行排序
考虑到集合中元素的顺序可能不同,集合中没有重复元素,下面的代码比较合适:
那些。我们从第一个集合中选择所有不在第二个集合中的元素,反之亦然,然后我们看到如果最终输出中没有一个元素,那么这些集合只包含相同的元素。
或者像这样:
那些。集合具有相同数量的元素并且它们的交集中的元素数量相同,当集合具有不同数量的元素时,此选项将更快地工作。