以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]按照第一个数组的排序顺序,对后面所有的数组进行排序 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129553) |
-- 作者:zpsun2003 -- 发布时间:2018/12/31 12:42:00 -- [求助]按照第一个数组的排序顺序,对后面所有的数组进行排序 1、自定义一个内部函数,目的是能按照第一个数组的排序顺序,后面所有的数组按第一个数组的顺序进行排序,功能和Array.Sort(数组1,数组2)是一样的,以下代码不知道哪错了,向大神求助。 2、二维数组中有没有一个直接可以实现此功能的函数。 For i As Integer = 1 To args.length-1 Dim pxsz() As Double pxsz = args(0) Array.Sort(pxsz,args(i)) Next array.Sort(args(0)) \'按照第一个数组的排序顺序,对后面所有的数组进行排序 |
-- 作者:zpsun2003 -- 发布时间:2018/12/31 12:45:00 -- 在测试中args(0)会在执行第一次循环后也发生了排序,args(0)应该一直是不变的啊,i从1开始循环的 |
-- 作者:有点甜 -- 发布时间:2019/1/2 12:04:00 -- 1、贴出测试代码。
2、说明最后需要达到的效果。 |
-- 作者:zpsun2003 -- 发布时间:2019/1/3 21:49:00 -- [求助]按照第一个数组的排序顺序,对后面所有的数组进行排序 内部函数(szpx): Dim pxsz() As Double \'定义一个数组pxsz For i As Integer = 1 To args.length-1 pxsz = args(0) \'将args(0)数组赋值给pxsz数组 Array.Sort(pxsz,args(i)) \'pxsz数组为排序数组,args(i)数组跟随pxsz数组排序 Next array.Sort(args(0)) \'再将args(0)数组排序 \'按照第一个数组的排序顺序,后面所有的数组跟随第一个数组排序 测试代码为: Dim s1() As Double = {1,3,6,2,7,4} Dim s2() As Double = {2,3,5,1,7,8} Dim s3() As Double = {10,3,1,2,7,20} Dim s4() As Double = {4,7,6,2,7,1} Dim s5() As Double = {20,3,6,2,7,2} Functions.Execute("szpx",s1,s2,s3,s4,s5) Output.Show(s2(5)) Output.Show(s3(5)) Output.Show(s4(5)) Output.Show(s5(5)) \'目的是让s2,s3,s4,s5数组按s1排序后也跟随着s1排序,但只有s2排序能实现,其余的都实现不了,返回的结果为7 20 1 2,实际想要的是7,7,7,7 ‘如果用此方法不行,用集合或用二维数组可不可以实现,实际使用时我的第一个数组是成本价格数组,一同生成的其余几十个数组要跟随成本价格排序而排序
|
-- 作者:有点甜 -- 发布时间:2019/1/3 21:57:00 -- 改成
For i As Integer = 1 To args.length-1 |
-- 作者:zpsun2003 -- 发布时间:2019/1/4 18:55:00 -- 非常感谢! args.length改成args(0).length |