Foxtable(狐表)用户栏目专家坐堂 → 高效随机抽取少量和大量记录的方法


  共有4340人关注过本帖平板打印复制链接

主题:高效随机抽取少量和大量记录的方法

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/5/15 8:59:00 [只看该作者]

这才是机会均等洗牌法:

 

Dim cnt As Integer = DataTables("订单").DataRows.Count
Dim ids1 As New List(of Integer)
Dim ids2 As New List(of Integer)
For i As Integer = 0 To cnt -1
    ids1.add(i)
Next
For i As Integer = 0 To cnt - 1
    ids2.Add(ids1(rand.Next(0,ids1.count)))
Next
Tables("订单").StopRedraw()
DataTables("订单").ReplaceFor("选择",False)
For i As Integer = 0 To 100 - 1 '100为要抽取的行数
    DataTables("订单").DataRows(ids2(i))("选择") = True
Next
Tables("订单").Filter = "[选择] = True"
Tables("订单").ResumeRedraw()

 

 

[此贴子已经被作者于2015/5/15 10:40:41编辑过]

 回到顶部
总数 24 1 2 3 下一页