以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]问个简单的排序问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123379)

--  作者:jeff69
--  发布时间:2018/8/13 15:58:00
--  [求助]问个简单的排序问题
老师,我需要提取一列数据,在插入一个数字后,再排序,从而找出对应的位置。我用getvalue提取数据后,是否形成的一个字字符型的集合?(表中此列的属性是整数),插入一个整数后,排序好象不起作用。如getvalue后的数据是1,15;插入整数4,排序后还是1,15,4,不起作用。
Dim Names As New List(Of String)
Names.Add( "1")
Names.Add("15")
Names.Add("4")
Output.Show(Names.Count) \'显示集合的长度
OutPut.Show(Names(0)) \'显示第一个值
OutPut.Show(Names(1)) 
OutPut.Show(Names(2)) 
Output.Show(Names.Indexof("4")) \'显示电视机在集合中的位置
Names.Sort() \'对集合中的元素排序
OutPut.Show(Names(0)) \'显示第一个值
OutPut.Show(Names(1)) 
OutPut.Show(Names(2)) 
Output.Show(Names.Indexof("4")) 
这是我用书上例子试的,执行结果是
3
1
15
4
2
1
15
4
2
我想排序后应该是1,4,15的,如何解决?

--  作者:jeff69
--  发布时间:2018/8/13 15:59:00
--  
是否要将集合的字符转换成数值,再排序?如何转换?


--  作者:有点甜
--  发布时间:2018/8/13 16:33:00
--  

Dim Names As New List(Of String)
Names.Add( "1")
Names.Add("15")
Names.Add("4")

Dim ls As new List(of Integer)
For Each s As String In names
    ls.add(s)
Next
msgbox(ls(1))
ls.sort
msgbox(ls(1))


--  作者:jeff69
--  发布时间:2018/8/13 16:49:00
--  
谢谢,解决了