Foxtable(狐表)用户栏目专家坐堂 → 老大还能再来个目瞪口呆吗?


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

主题:老大还能再来个目瞪口呆吗?

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/14 17:31:00 [显示全部帖子]

呵呵,有空再看了,先问问你的任务是啥?


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/14 22:36:00 [显示全部帖子]

呵呵,我测试下面的代码不到3秒,只是这样的代码似乎没有什么实用的意义吧:

 

Dim t1 As Date = Date.Now
Dim dic As New Dictionary(of DataRow, DataRow)
Dim lst As New List(of Integer)
Dim drs As List(of DataRow)
Dim dr1 As DataRow
For Each dr1 In DataTables("表A").DataRows
    drs = DataTables("表A").Select("[第二列] = " & dr1("第一列") )
    For Each dr2 As DataRow In drs
        If lst.Contains(dr2("_Identify"))= False Then
            lst.add(dr2("_Identify"))
            dic.Add(dr1, dr2)
            Exit For
        End If
    Next
Next
For Each dr As DataRow In dic.keys
    dr1 = dic(dr)
    dr("第八列") = dr1("_Identify")
    dr("第九列") = dr1("第一列")
    dr("第十列") = dr1("第二列")
Next
Output.Show("计算结束, 耗时: " & (Date.Now - t1).TotalSeconds & "秒")

 

不过我倒有个意外收获,就是逻辑列的查询非常慢,追求效率的时候可以用整数或者字符列代替逻辑列。

[此贴子已经被作者于2010-12-15 8:01:01编辑过]

 回到顶部