以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教:数组比较问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148768)

--  作者:y2287958
--  发布时间:2020/4/15 9:48:00
--  请教:数组比较问题
Dim A() = {0,1,2}
Dim B() = {0,1,2}
Output.Show(A.Equals(B))
Output.Show(A Is B)

为什么这两种方法返回的都是False啊,明明都相等。
又该如何比较?谢谢

--  作者:有点蓝
--  发布时间:2020/4/15 10:04:00
--  
数组不能直接比较,只能比较里面的项目:遍历直接比较
--  作者:逛逛
--  发布时间:2020/4/15 10:16:00
--  
试试   Output.Show(Enumerable.SequenceEqual(A, B))
--  作者:y2287958
--  发布时间:2020/4/15 11:12:00
--  
图片点击可在新窗口打开查看谢谢逛逛,帮我不少。
NET FrameWork 4.0以后,很多东西明明知道可以,就是不知道写法。
这样写法也可以:Output.Show(A.SequenceEqual(B))
想再请教逛逛:比较两个数组“谁大谁小”?

--  作者:逛逛
--  发布时间:2020/4/15 13:39:00
--  
数组是对象,没有大小吧。可以结合交差并,去判断一下是否有谁包含谁
--  作者:y2287958
--  发布时间:2020/4/15 16:46:00
--  
回逛逛:这里有,就是不知道在狐表怎么写。
[此贴子已经被作者于2020/4/15 17:04:20编辑过]

--  作者:有点蓝
--  发布时间:2020/4/15 17:21:00
--  
Dim A() = {0,1,2}
Dim B() = {0,1,3}

Dim res As Integer = ctype(a , System.Collections.IstructuralComparable).CompareTo(b,Comparer(of Integer).Default)
msgbox(res)

--  作者:y2287958
--  发布时间:2020/4/16 8:05:00
--  
图片点击可在新窗口打开查看谢谢蓝版