以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 在字典中存入数组问题! (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=152202) |
-- 作者:304376480 -- 发布时间:2020/7/9 15:09:00 -- 在字典中存入数组问题! 老师您好! 想通过字典的键来获得两个值,在字典中存入数组,但为什么会都获得相同的值,代码如下: Dim drs As List(of DataRow) = DataTables("销售").Select("单据编号 = \'XS20200707-005\'") ‘这张单据里有两行数据 \'设置成本均价 Dim Dic As new Dictionary(of Integer, Double()) Dim v(1) As Double Dim CPCKh As DataRow Dim CPh As DataRow For i As Integer = 0 To drs.count-1 CPCKh = DataTables("商品库存").SQLfind("商品ID = \'" & drs(i)("商品ID") & "\' And 仓库ID = \'" & drs(i)("仓库ID") & "\'") If CPCKh IsNot Nothing Then v(0) = CPCKh("数量") Else v(0) = 0 End If CPh = DataTables("商品").SQLfind("商品ID = \'" & drs(i)("商品ID") & "\'") If cph IsNot Nothing AndAlso CPh("成本均价") > 0 Then v(1) = CPh("成本均价") Else v(1) = drs(i)("单价") End If output.Show(v(0) & "和" & v(1)) 这里显示正常的两行值 -5和199 -8和158 Dic.Add(i, v) 为什么存进去的是两个相同的值? Next For Each k As Integer In Dic.Keys Output.Show(K & ":" & Dic(k)(0)) 这里显示两个相同的值 0:-8 1:-8 正确应该是 -5 和 -8 Next For Each k As Integer In Dic.Keys Output.Show(K & ":" & Dic(k)(1)) 这里显示两个相同的值 0:158 1:158 正确应该是 199 和 158 Next |
-- 作者:有点蓝 -- 发布时间:2020/7/9 15:30:00 -- Dim Dic As new Dictionary(of Integer, Double()) Dim CPCKh As DataRow Dim CPh As DataRow For i As Integer = 0 To drs.count-1 Dim v(1) As Double CPCKh = DataTables("商品库存").SQLfind("商品ID = \'" & drs(i)("商品ID") & "\' And 仓库ID = \'" & drs(i)("仓库ID") & "\'") If CPCKh IsNot Nothing Then
|
-- 作者:304376480 -- 发布时间:2020/7/9 15:34:00 -- 谢谢!完美解决 |