以文本方式查看主题

-  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
--  
谢谢!完美解决图片点击可在新窗口打开查看