Foxtable(狐表)用户栏目专家坐堂 → 在字典中存入数组问题!


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

主题:在字典中存入数组问题!

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


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
在字典中存入数组问题!  发帖心情 Post By: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

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3760 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2020/7/9 15:34:00 [只看该作者]

谢谢!完美解决图片点击可在新窗口打开查看

 回到顶部