如何根据datagridview中的最大最小数据值进行值加权vb.net

How to do value weighted based on maximum-minimum data value in datagridview vb.net

我想通过使用数字 1-4 来根据数据网格视图中值的数量级(从最小值到最大值)替换数据值来进行数据加权,我正在使用 visual basic 来编写我的程序。

这是 table 初始数据:

方法 第 1 列
FCFS 146
SPT 143
LPT 253.25
EDD 192.25

我想根据最大最小值对 column1 的值进行加权,然后将其显示在“结果”列中,条件如下:

我想展示的最终结果就像下面的table:

方法 第 1 列 结果
FCFS 146 2
SPT 143 1
LPT 253.25 4
EDD 192.25 3

你能帮我写出得到“结果”的语法吗?我很抱歉我的英语不好。 提前致谢

如果不介意改变datagridview行的顺序,可以直接对datagridview进行排序。

DataGridView1.Sort(DataGridView1.Columns("Column1"), ListSortDirection.Ascending)

否则可以参考下面的例子

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dt As DataTable = New DataTable
    dt.Columns.Add("Method")
    dt.Columns.Add("Column1")
    dt.Rows.Add("FCFS", 146)
    dt.Rows.Add("SPT", 143)
    dt.Rows.Add("LPT", 253.25)
    dt.Rows.Add("EDD", 192.25)
    DataGridView1.DataSource = dt
    DataGridView1.AllowUserToAddRows = False
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim col As DataGridViewColumn = New DataGridViewTextBoxColumn()
    col.Name = "Result"
    DataGridView1.Columns.Add(col)

    Dim weighting As Integer = 1
    Dim dic As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)

    Dim arr As String() = DataGridView1.Rows.Cast(Of DataGridViewRow)().Select(Function(x) x.Cells("Column1").Value.ToString).ToArray()
    Array.Sort(arr)
    For Each key In arr
        dic.Add(key, weighting)
        weighting += 1
    Next
    For i As Integer = 0 To DataGridView1.Rows.Count - 1
        Dim col1Cell = DataGridView1.Rows(i).Cells("Column1").Value.ToString
        DataGridView1.Rows(i).Cells("Result").Value = dic(col1Cell)
    Next
End Sub

结果: