【问题标题】:Printing list permutation打印列表排列
【发布时间】:2011-06-14 19:11:31
【问题描述】:

我(在 C# 中)有一个对象列表(每个对象都包含一个列表),我想打印出对象列表中项目的每个排列。每次迭代将使用每个列表中的一项。实现这一目标的最有效方法是什么?欢迎使用伪代码。

public class Detail {

    public int type;
    public List<String> codes;

    public Detail(int i){

        this.type = i;
        this.codes = new List<String>();

    }

}

稍后...

List<Detail> ListOfDetail = new List<Detail>();
foreach(Field i in listBox.Items)
    ListOfDetail.Add(new Detail(i));

从 db 分配的代码列表可以是 2 到 250 之间的任何值。

如果我有 3 个对象(A、B 和 C),A 持有 1,2,3,B 持有 4,5,6,C 持有 7,8,9,我希望它打印以下:

147
148
149
157
158
159
167
etc...

【问题讨论】:

  • 能否提供对象模型的粗略代码大纲?描述有点模糊,我不相信你会想看到答案的猜测。
  • 好的,所以随着你的更新,你有一个任意长的详细信息列表,每个都有一个任意长的字符串列表。 Eric Lippert 写了关于 a cartesian product of arbitrarily many sequences 的博客,它可能会对您有所帮助。

标签: c# list permutation


【解决方案1】:

如果我没听错的话,你会想要这样的:

更新:

foreach(var secondaryList in primaryListOfObjects) {
    StringBuilder sb = new StringBuilder();
    foreach(var str in secondaryList) {
        sb.Append(str);
    }
    Console.WriteLine(sb.ToString());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多