我有一个List(Of Tuple(Of Object,Double),当我按任务运行购买零件的DataGridView时填充。每个任务由一个四位数字表示。大多数任务在DataGridView因为它们需要多个部分才能完成(但不是全部)。对于这个列表中的每个元组,Item1是任务编号,Item2是完成它所需的每个部分的成本之和。这是代码我现在正填充列表。
http://127.0.0.1:8888/api/contents
大约有70个任务。此方法仅使用39个项填充List。我知道代码是错误的,但我不能想到如何改进它或如何判断任务是否只有一个部分。
答案 0 :(得分:1)
您应该只使用DataGridView
或数据最初来自哪里,而不是重新读取DataSource
中的数据。由于我们不知道那是什么,因此我会展示一些代码为DataGridView
的代码。
正如您所说,任务由四位数字表示,我使用了Integer
而不是Object
来存储它。我还使用了Dictionary(Of Integer, String)
来存储每项任务的总费用。这样可以轻松找到每项任务的当前总数。
Private purchasedSum As Dictionary(Of Integer, Double)
Private Sub populateDoubleList()
purchasedSum = New Dictionary(Of Integer, Double)
For i As Integer = 0 To DataGridView1.Rows.Count - 1
Dim taskNum As Integer = CInt(DataGridView1.Item("TASK", i).Value)
Dim cost As Double = CDbl(DataGridView1.Item("TOTALCOST", i - 1).Value)
If purchasedSum.ContainsKey(taskNum) Then
purchasedSum(taskNum) += cost
Else
purchasedSum.Add(taskNum, cost)
End If
Next
End Sub