【问题标题】:How to build all combinations of few list or arrays如何构建几个列表或数组的所有组合
【发布时间】:2023-01-21 20:17:53
【问题描述】:

我还没有写任何代码,因为我什至不知道如何启动它,

我有几个清单:

List<string> list1 = { A1, B1, C1 }
List<string> list2 = { A2, B2 }
List<string> list3 = { A3, B3, C3 }

我想通过从每个列表中提取一个元素并构建唯一列表来构建每个可能的变体。寻找找到所有变化的方法。

假设我们为 list1 中的每个元素取 list2 中的 1 个元素和 list 中的 1 个元素。

所以 list1[0] 的第一个变体:

A1, A2, A3
A1, A2, B3
A1, A2, C3

A1, B2, A3
A1, B2, B3
A1, B2, C3

我的头无法爬行我如何编写逻辑代码。

【问题讨论】:

  • 构建变体意味着什么?什么是预期的输出?大批?列表?输出结果如何?
  • “我如何编写逻辑代码”.您首先制定逻辑,然后编写代码来实现它。如果这是一个完全手动的过程,你会怎么做?这就是逻辑。如果您没有费心解决这个问题,您甚至不应该考虑编写代码。在您尝试过某些事情之前,您还没有遇到要在这里询问的问题。
  • 我更新了问题。

标签: c#


【解决方案1】:

您可以使用 SelectManyof LINQ 来获得所需的输出。

List<string> list1 = new List<string>{ "text1", "text2", "text3" };
List<string> list2 = new List<string> { "text4", "text5", "text6" };
List<string> list3 = new List<string> { "text7", "text8", "text9" };

var allCombinations = list1.SelectMany(x => list2, (x, y) => x + " " + y)
                            .SelectMany(x => list3, (x, z) => x + " " + z)
                            .ToList();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 2010-11-14
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多