以文本方式查看主题 - 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=154499) |
|
-- 作者:吃亏是福 -- 发布时间:2020/9/16 16:02:00 -- 如何避免随机数重复 \'我的表格一共3637行,我想实现随机抽取十行,抽取八组,并在表格中显示,为避免随机数重复应该如何调整 For i As Integer = 0 To 7 Dim ids As String Dim lst As new List(of String) Dim cnt As Integer = DataTables("订单客户列表").DataRows.Count Do Dim Id As Integer = rand.Next(0,cnt) id = DataTables("订单客户列表").DataRows(id)("_Identify") If lst.Contains(id) =False Then lst.Add(id) Output.Show(id - 2) End If ids = ids & id & "," Loop While lst.count < 10 \'10是要抽取的行数 Tables("订单客户列表").Filter = "[_Identify] In (" & ids.Trim(",") & ")" MessageBox.Show("下一轮") Output.Show("下一轮") Next [此贴子已经被作者于2020/9/16 18:19:34编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2020/9/16 16:15:00 -- 参考:http://www.foxtable.com/webhelp/topics/2963.htm |
|
-- 作者:吃亏是福 -- 发布时间:2020/9/16 18:22:00 -- 如何避免随机数重复 ,多谢 如何避免随机数重复 Post By:2020/9/16 16:02:00 [只看该作者]
|
|
-- 作者:有点蓝 -- 发布时间:2020/9/17 8:39:00 -- 代码的do循环就是为了避免重复的 |
|
-- 作者:吃亏是福 -- 发布时间:2020/9/17 8:45:00 -- 单组使用,是避免重复的,但是一共8轮,还是有重复的 单组使用,是避免重复的,但是一共8轮,8轮叠加之后是有可能是有重复行的 我在外面嵌套了一个循环语句,执行之后,有重复行。 For i As Integer = 0 To 7 Dim ids As String Dim lst As new List(of String) Dim cnt As Integer = DataTables("订单客户列表").DataRows.Count Do Dim Id As Integer = rand.Next(0,cnt) id = DataTables("订单客户列表").DataRows(id)("_Identify") If lst.Contains(id) =False Then lst.Add(id) Output.Show(id - 2) End If ids = ids & id & "," Loop While lst.count < 10 \'10是要抽取的行数 Tables("订单客户列表").Filter = "[_Identify] In (" & ids.Trim(",") & ")" MessageBox.Show("下一轮") Output.Show("下一轮") Next [此贴子已经被作者于2020/9/17 8:46:52编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2020/9/17 9:28:00 -- 把集合放到外面即可 Dim lst As new List(of String) For i As Integer = 0 To 7 Dim ids As String Dim cnt As Integer = DataTables("订单客户列表").DataRows.Count Do Dim Id As Integer = rand.Next(0,cnt) id = DataTables("订单客户列表").DataRows(id)("_Identify") If lst.Contains(id) =False Then lst.Add(id) Output.Show(id - 2) End If ids = ids & id & "," Loop While lst.count < 10 \'10是要抽取的行数 Tables("订单客户列表").Filter = "[_Identify] In (" & ids.Trim(",") & ")" MessageBox.Show("下一轮") Output.Show("下一轮") Next |