Foxtable(狐表)用户栏目专家坐堂 → 帮忙解释一下


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

主题:帮忙解释一下

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


加好友 发短信
等级:三尾狐 帖子:779 积分:6262 威望:0 精华:0 注册:2018/2/1 17:26:00
帮忙解释一下  发帖心情 Post By:2025/4/8 22:58:00 [只看该作者]

帮忙解释一下,下面代码中红色部分的代码是什么意思,谢谢

Dim drs As List(Of DataRow) = DataTables("标录明细").Select("[有效评标价] > 0 And [项目名称] = '半山单元高中(暂名) 监理'", "有效评标价 DESC")

Dim n As Integer = Round2(drs.Count * 0.1,0)

 

If drs.Count >= n *2 Then

    '▂▂▂▂▂▂▂ 去除极端值 ▂▂▂▂▂▂▂

    drs.RemoveRange(0, n) '直接移除区间

    drs.RemoveRange(drs.Count - n, n)

   

    '▂▂▂▂▂▂▂ 计算平均值 ▂▂▂▂▂▂▂

    Dim sum As Double = 0

    For Each dr As DataRow In drs

        sum += dr("有效评标价")

    Next

    Dim avg As Double = sum / drs.Count

    avg = avg * 0.98   下浮系数2%

    msgbox(avg)

    '▂▂▂▂▂▂▂ 集合方式筛选 ▂▂▂▂▂▂▂

    Dim diffDict As New Dictionary(Of DataRow, Double)

    For Each dr As DataRow In drs

        diffDict(dr) = Math.Abs(dr("有效评标价") - avg)

    Next

   

    Dim entryList As New List(Of KeyValuePair(Of DataRow, Double))(diffDict)

    entryList.Sort(Function(x, y) x.Value.CompareTo(y.Value))

   

    '▂▂▂▂▂▂▂ 生成结果表 ▂▂▂▂▂▂▂

    For i As Integer = 0 To Math.Min(14, entryList.Count - 1)

        Dim drSource = entryList(i).Key

       

        Output.Show(drSource("投标单位") & "=" & drSource("有效评标价"))

    Next

    MessageBox.Show("处理完成,平均值:{avg:N2}")

Else

    MessageBox.Show("有效数据不足")

End If



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


加好友 发短信
等级:超级版主 帖子:113413 积分:577542 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/8 23:04:00 [只看该作者]

这个是.net的语法。就是把字典【Dim diffDict As New Dictionary(Of DataRowDouble)】的键值对转换为集合,然后根据每一项的键值对的【Double】值进行排序

 回到顶部