以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数组内最小值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131204)

--  作者:fubblyc
--  发布时间:2019/2/20 10:42:00
--  数组内最小值
老师,在写一个顾客输入的多个内容与当前月份比较的最小值的功能,要不能小于当前月份。。。

Dim y0 As Integer = Date.Today.Month
Dim Multi As String = "1|2|3|4|5" \'顾客输入的,不固定的
Dim Values() As String
Values = Multi.split("|")
Dim g As Integer \'相减
Dim i As Integer
For i = 0 To Values.Length - 1
    g = values(i) - y0
    If g >= 0 Then
        If   xxxxxxxxx Then  \'这里要取出g最小值,不知道怎么写,
            Exit For
        End If
    End If
Next
output.show(values(i))

--  作者:有点蓝
--  发布时间:2019/2/20 11:07:00
--  
Dim y0 As Integer = Date.Today.Month
Dim Multi As String = "1|2|3|4|5"
Dim lst As new List(of String)
lst.AddRange(Multi.Split("|"))
lst.Sort
For Each m As String In lst
    If m >= y0 Then
        msgbox(m)
        Exit For
    End If
Next

--  作者:fubblyc
--  发布时间:2019/2/20 18:05:00
--  
谢谢蓝老师~~
[此贴子已经被作者于2019/2/20 18:04:51编辑过]

--  作者:fubblyc
--  发布时间:2019/2/20 20:28:00
--  
老师,如果 string = "1|2|3|4|12"
那么排序就会是 1,12,2,3,4
是按字符来排序,而不是正常的 数字 大小来排序,要怎么处理呢

--  作者:有点蓝
--  发布时间:2019/2/20 20:47:00
--  
想办法转换为数字集合
--  作者:fubblyc
--  发布时间:2019/2/20 21:07:00
--  
恩恩,蓝老师,我这个的场景是 单元格里让 用户输入 1|3|7|12  这样的 1-12的数字。
我可以自动将 10 11  12 这三个数字 变为 910 911 912.这样也能解决。

那你说的转为数字集合,在这种 单元格里的场景,要怎么转换呢。。。
[此贴子已经被作者于2019/2/20 21:06:56编辑过]

--  作者:有点蓝
--  发布时间:2019/2/20 21:17:00
--  
Dim y0 As Integer = Date.Today.Month
Dim Multi As String = "1|2|3|4|5"
Dim lst As new List(of Integer)
For Each s As String In Multi.Split("|")
    lst.Add(val(s))
Next
lst.Sort

--  作者:fubblyc
--  发布时间:2019/2/20 22:06:00
--  
图片点击可在新窗口打开查看谢谢蓝老师!