Foxtable(狐表)用户栏目专家坐堂 → sort 排序


  共有2455人关注过本帖树形打印复制链接

主题:sort 排序

帅哥哟,离线,有人找我吗?
侠客1985
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:261 威望:0 精华:0 注册:2023/11/6 20:32:00
sort 排序  发帖心情 Post By:2023/12/10 15:38:00 [只看该作者]

Dim names() As String={"赵沿骅","赵思群","范丙刚","徐红","范瑞"}
Dim Marks() As Integer={99,90,85,89,86}
Array.sort(Marks,names)
Output.show(names(0)&"="& Marks(0))
Output.show(names(1)&"="& Marks(1))
Output.show(names(2)&"="& Marks(2))
Output.show(names(3)&"="& Marks(3))
Output.show(names(4)&"="&Marks(4))
Output.show(names.length)
范丙刚=85
范瑞=86
徐红=89
赵思群=90
赵沿骅=99
5

老师,在上述对数组的排序中默认从小到大,如果要改为从大到小可以不?要怎么更改排序的方式

 回到顶部
帅哥哟,离线,有人找我吗?
linyunu1
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1089 威望:0 精华:0 注册:2020/1/16 11:58:00
  发帖心情 Post By:2023/12/10 17:12:00 [只看该作者]

全局代码
Public Class myReverserClass
    Implements System.Collections.IComparer
    Function Compare(x As [Object], y As [Object]) As Integer Implements System.Collections.IComparer.Compare
    Return New System.Collections.CaseInsensitiveComparer().Compare(y, x)
    End Function
End Class

使用
Dim names() As String={"赵沿骅","赵思群","范丙刚","徐红","范瑞"}
Dim Marks() As Integer={99,90,85,89,86}
Dim myComparer = New myReverserClass()
Array.Sort(Marks,names,myComparer)
Output.show(names(0)&"="& Marks(0))
Output.show(names(1)&"="& Marks(1))
Output.show(names(2)&"="& Marks(2))
Output.show(names(3)&"="& Marks(3))
Output.show(names(4)&"="&Marks(4))
Output.show(names.length)

 回到顶部
帅哥哟,离线,有人找我吗?
侠客1985
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:261 威望:0 精华:0 注册:2023/11/6 20:32:00
  发帖心情 Post By:2023/12/10 17:47:00 [只看该作者]

老师,执行结果报错图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
linyunu1
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:162 积分:1089 威望:0 精华:0 注册:2020/1/16 11:58:00
  发帖心情 Post By:2023/12/10 20:00:00 [只看该作者]

全局代码
Public Class myReverserClass
    Implements System.Collections.IComparer
    Function Compare(x As [Object], y As [Object]) As Integer Implements System.Collections.IComparer.Compare
Return New System.Collections.CaseInsensitiveComparer().Compare(y, x)
    End Function
End Class

有复制进去吗

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/10 21:41:00 [只看该作者]

Dim names() As String = {"赵沿骅", "赵思群", "范丙刚", "徐红", "范瑞"}
Dim Marks() As Integer = {99, 90, 85, 89, 86}
Dim d As New SortedDictionary(Of Integer, String)
For i As Integer = 0 To Marks.Length - 1
    d.Add(Marks(i), names(i))
Next

For i As Integer = d.Keys.Count - 1 To 0 Step - 1
    Output.Show(d.Keys(i) & "=" & d(d.Keys(i)))
Next 

 回到顶部