2011-06-14 118 views
1

我有(在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)); 

代码列表,这是由分贝分配,可以从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... 
+4

你能提供的对象模型的粗略代码大纲?说明有些含糊,我不相信你会想要看到答案。 – 2011-06-14 19:13:50

+0

好吧,所以随着你的更新,你有一个任意长的细节列表,每个列表都有一个任意长的字符串列表。 Eric Lippert在博客上发表了关于* [任意多个序列的笛卡尔产品](http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing-a-cartesian-product-with-linq.aspx )*,它可能会帮助你。 – 2011-06-14 19:24:47

回答

2

If我在跟随g您正确的,你想是这样的:

更新:

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