【发布时间】:2020-07-14 00:06:50
【问题描述】:
我有多个包含一些项目的字符串列表
想要将每个项目组合在一起,如下所示
Dim _rsltitm = Nothing
For Each _itm1 In _lst1
For Each _itm2 In _lst2
For Each _itm3 In _lst3
_rsltitm &= vbNewLine & _itm1 + _itm2 + _itm3
Next
Next
Next
上面的代码工作正常,但我有超过 8 个列表,有时是 11 个
所以我需要 linq 将多个字符串项列表组合在一起
我正在尝试这样,但我做不到
Dim _rslt = From itm In _lst1 Select (Function(x) From itm2 In _lst2 Select (Function(d) x & d))
【问题讨论】:
-
你只需要三个循环,不管你有多少列表。您将前两个列表组合成一个列表,然后将其与下一个列表组合以获得另一个列表,然后将其与下一个列表组合,依此类推。内部的两个循环进行组合,最外面的循环遍历所有列表的列表。与任何问题一样,您应该首先手动完成并制定开发算法所涉及的步骤。在代码中实现该算法应该是你做的最后一件事。
-
一旦你有一个非 LINQ 实现,你大概可以使用
Aggregate将其转换为 LINQ,尽管我还没有考虑过具体细节。