VBA如何从5个文本框提取的整数值中取前两名并输出对应描述
实现方案
最简单的实现方式是把数值和对应的描述绑定为集合后排序取值,不需要写多层嵌套的if判断逻辑,易读性高且不容易出错。
- 首先用
List(Of Tuple)存储每一组「数值-对应描述」的映射关系,避免排序时数值和对应描述脱节 - 对集合按数值降序排序后直接取前两位元素即可
完整代码如下:
' 定义存储数值和对应描述的列表,按你的实际需求修改每个Tuple的第二个参数(描述内容) Dim scoreMapping As New List(Of Tuple(Of Integer, String)) From { Tuple.Create(a, "High Growth Leader"), Tuple.Create(b, "Niche Business Leader"), Tuple.Create(c, "c对应的描述"), Tuple.Create(d, "d对应的描述"), Tuple.Create(e, "e对应的描述") } ' 按数值降序排序,取前两名 Dim top2Items = scoreMapping.OrderByDescending(Function(item) item.Item1).Take(2).ToList() ' 赋值给输出文本框 frmform.TextBox1.Text = "The first role is " & top2Items(0).Item2 frmform.TextBox2.Text = "The second top role is " & top2Items(1).Item2
如果你的VB版本支持字符串插值语法,也可以把最后两行替换为更简洁的写法:
frmform.TextBox1.Text = $"The first role is {top2Items(0).Item2}" frmform.TextBox2.Text = $"The second top role is {top2Items(1).Item2}"
内容的提问来源于stack exchange,提问作者Ashutosh Parida
相关产品推荐
相关产品推荐

