以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [分享] 集合值自定义排序  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=57150)

--  作者:程兴刚
--  发布时间:2014/9/19 10:05:00
--  [分享] 集合值自定义排序

看大家有对集合内各个值的自定义排序要求,可以通过代码变通实现,分享如下:

 

命令窗口执行下面的代码:

 

Dim zdpx As String = "洗衣机|电冰箱|摄像机|照相机|电视机|投影仪|电话机" \'定义一个变量并赋值为自定义排序序列字符串(这就是您所需要的自定义排序规则)
Dim lst As New List(Of String) \'定义所需要排序的集合并按任意顺序添加值
Lst.Add( "电话机")
Lst.Add("照相机")
Lst.Add( "电视机")
Lst.Add("洗衣机")
Lst.Add("电冰箱")
Dim Values() As String  \'定义字符型数组
Values = zdpx.split("|") \'分割自定义排序序列字符串并添加到数组
Dim pxjg As New List(Of String) \'定义一个新的集合用以储存排序后的集合值
For Index As Integer = 0 To Values.Length - 1 \'遍历数组各值,获得按排序序列字符串顺序分割后的各字符串
    If lst.Contains(Values(Index)) = True \'判断所需排序的集合中是否包含从数组中获取的字符串
        pxjg.add(Values(Index)) \'当集合中的值包含这个字符串时,添加用来到储存排序结果的集合中
    End If
Next
For i As Integer = 0 To pxjg.Count - 1 \'以下循环遍历并输出排序后的值
    Output.Show(pxjg(i))
Next


--  作者:Bin
--  发布时间:2014/9/19 10:16:00
--  
谢谢分享.
--  作者:找到没重的名
--  发布时间:2019/8/30 15:06:00
--  
马克