Foxtable(狐表)用户栏目专家坐堂 → 关于排列组合问题


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

主题:关于排列组合问题

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


加好友 发短信
等级:三尾狐 帖子:606 积分:3403 威望:0 精华:0 注册:2011/5/21 18:05:00
关于排列组合问题  发帖心情 Post By:2023/2/21 15:08:00 [只看该作者]

列1 列2 列3 列4
A 1 X A1X
B 2 Y A1Y
C 3 A2X
D A2Y
E A3X
A3Y
B1X
B1Y
B2X
B2Y
B3X
B3Y
C1X
C1Y
C2X
C2Y
C3X
C3Y
D1X
D1Y
D2X
D2Y
D3X
D3Y
D1X
D1Y
D2X
D2Y
D3X
D3Y

'上面表的排列组合代码如下:
Dim t1 As Date = Date.Now
Dim dt As DataTable = DataTables("表A")
Dim l1s As List(Of String) = dt.GetValues("列1", "列1 Is Not Null")
Dim l2s As List(Of String) = dt.GetValues("列2", "列2 Is Not Null")
Dim l3s As List(Of String) = dt.GetValues("列3", "列3 Is Not Null")
dim jh as string
For Each l1 As String In l1s
     For Each l2 As String In l2s
           For Each l3 As String In l3s
                    jh = l1 & l2 & l3
           Next
    Next
Next
‘现在的问题是如果不确定有多少符合条件的列时代码如何写,如下表

列1 列2 列3 列4
A 1 A1
B 2 A2
C B1
B2
C1
C2



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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/21 15:50:00 [只看该作者]

Dim lst As new List(Of String) 

Dim l1s As List(Of String) = dt.GetValues("列1", "列1 Is Not Null")
Dim l2s As List(Of String) = dt.GetValues("列2", "列2 Is Not Null")
if l2s.count > 0
for each s1 as string in l1s 
    for each s2 as string in l2s 
lst.add(s1 & s2)
    next
next
l1s.clear
l1s.addrange(lst)
lst.clear
end if
Dim l3s As List(Of String) = dt.GetValues("列3", "列3 Is Not Null")
if l3s.count > 0
for each s1 as string in l1s 
    for each s3 as string in l3s
lst.add(s1 & s3)
    next
next
next
if l1s.count > 0 andalso lst.count = 0 then
lst.addrange(l1s)
end if

for each s as string in lst
output.show(s)
next

 回到顶部