Foxtable(狐表)用户栏目专家坐堂 → 如何在集合求最小值后要找到最小值的来源


  共有3754人关注过本帖树形打印复制链接

主题:如何在集合求最小值后要找到最小值的来源

帅哥哟,离线,有人找我吗?
老蜗牛
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:161 积分:1829 威望:0 精华:1 注册:2019/7/30 13:13:00
如何在集合求最小值后要找到最小值的来源  发帖心情 Post By:2020/1/30 22:30:00 [只看该作者]

Dim ll As WinForm.TextBox = e.Form.Controls("TextBox17")
Dim aa As WinForm.TextBox = e.Form.Controls("TextBox18")
Dim bb As WinForm.TextBox = e.Form.Controls("TextBox19")
Dim des As New List(Of Double)
For Each dr As Row In Tables("配方颜色表")
       des.Add(math.sqrt((ll.value - dr("L值"))^2 + (aa.value - dr("A值"))^2 +(bb.value - dr("B值"))^2))
Next
    des.Sort
Dim min As Double = des(0)
配方颜色表 只有四列 :配方单号,L,A,B值,窗口中设置了三个文本框,作为比较值分别对应L,A,B,我的目的是要找到与比较值最接近的配方单号,上面的代码,我找到了与比较值计算后的最小值,但是不知道怎么再对应回颜色配方表中去,请老师指点下,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/30 22:57:00 [只看该作者]

Dim sd As New SortedDictionary(Of Double, String)
Dim ll As WinForm.TextBox = e.Form.Controls("TextBox17")
Dim aa As WinForm.TextBox = e.Form.Controls("TextBox18")
Dim bb As WinForm.TextBox = e.Form.Controls("TextBox19")

For Each dr As Row In Tables("配方颜色表")
    Dim key As Double = math.sqrt((ll.value - dr("L值"))^2 + (aa.value - dr("A值"))^2 +(bb.value - dr("B值"))^2)
    If sd.ContainsKey(key) = False Then
        sd.Add(key,dr)
    End If
Next
Dim min As Double = sd.keys(0)
Dim minRow As Row = sd(sd.keys(0))


 回到顶部
帅哥哟,离线,有人找我吗?
老蜗牛
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:161 积分:1829 威望:0 精华:1 注册:2019/7/30 13:13:00
  发帖心情 Post By:2020/1/31 8:15:00 [只看该作者]

谢谢老师,后来我想到用一个临时表,对应存放数据,也能解决了

 回到顶部