以文本方式查看主题 - 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=171897) |
-- 作者:1669607010 -- 发布时间:2021/9/14 14:13:00 -- 集合获取最大值的问题 Dim s As Integer Dim a As New List(of Integer) a .Add(108) a .Add(95) a .Add(70) a .Add(100) a .Add(1081) a .Add(905) a .Add(700) a .Add(1000) a.Sort s =a(a.count-1) Output.Show(s)
上面的代码可以获取集合中的最大值,哪位老师指导一下有没有方法完成这样的需求:集合中的值每三个一组分别获取最大值,然后添加到一个新集合里。就是 108,95,70,获取108, 100,1081,905获取1081, 700,1000获取1000, 然后把获取的各个组的最大值添加到一个新集合中,哪位老师指导一下,怎么解决??? 还有个问题就是集合排序a.Sort后,还能撤销排序再变回排序前的顺序吗? [此贴子已经被作者于2021/9/14 14:16:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/9/14 14:33:00 -- Dim a As New List(of Integer) a .Add(108) a .Add(95) a .Add(70) a .Add(100) a .Add(1081) a .Add(905) a .Add(700) a .Add(1000) Dim b As New List(of Integer) For i As Integer = 0 To a.Count - 1 Step 3 If i + 2 <= a.Count - 1 b.Add(Math.Max(Math.Max(a(i),a(i+1)),a(i+2))) ElseIf i + 1 <= a.Count - 1 b.Add(Math.Max(a(i),a(i+1))) Else b.Add(a(i)) End If Next For Each m As Integer In b Output.Show(m) Next 至于撤销排序是不能的,另外建一个集合重新添加原来的元素即可
|
-- 作者:1669607010 -- 发布时间:2021/9/14 14:33:00 -- 谢谢老师指导 |
-- 作者:wei0769 -- 发布时间:2021/9/14 15:13:00 -- Dim a As New List(of Integer) a .Add(108) a .Add(95) a .Add(70) a .Add(100) a .Add(1081) a .Add(905) a .Add(700) a .Add(1000) Dim maxnum As Integer maxnum = a.Max() output.show(maxnum) |