2014-11-14 23 views
-3

我有一些IList类型的变体,每个元素都有6个 元素, 1,1,3,2,2,2C#合并许多IList <char>来创建一个新的列表

所以在我的排列集合我可能有2个列表看起来像1,1,1 3,2,2,2 &另一个为1,1,2,3 ,2,2

我需要把它们结合起来,以获得所产生的组合是1,1,2/3,2/3,2,2

但是结合需要在被应用到所有排列列表。下面的代码建议工作,但是合并应该减少集合中的项目,但是在合并之后,我还剩下相同数量的排列组合?

foreach (IList<char> p in permutationCollection) 
    { 
     var result = p.Zip(permutationCollection.ElementAt(x + 1), (first, second) => { if (first != second) { return first + "/" + second; } else return second.ToString(); }); 
    } 
+2

欢迎SO。在尝试让人们去帮助之前,你需要展示你所尝试过的东西,否则就会被认为你只是来这里让人们为你写一些代码。 – sr28 2014-11-14 12:42:13

+0

你只有2个列表或多个? – 2014-11-14 12:42:57

+1

我不清楚你的例子结果。你能否准确地解释你如何结合{1,1,3,2,2,2}与{1,1,2,3,2,2}得到{1,1,2/3,2/2} 3,2,2}。 2/3是指三分之二(0.66)还是2和3?如果后者在你的集合中表现如何? – juharr 2014-11-14 12:45:13

回答

1

的LINQ邮编会做的伎俩http://msdn.microsoft.com/en-us/library/vstudio/dd267698(v=vs.100).aspx

int[] numbers = { 1, 1, 3, 2, 2, 2 }; 
int[] words = { 1, 1, 2, 3, 2, 2 }; 

var result = numbers.Zip(words, (first, second) => {if(first != second) {return first + "/" + second;} else return second.ToString(); }); 
+0

这看起来工作,谢谢@marcinn。现在我的收藏显然有很多项目(有时数百)我如何将它们全部结合起来。我已经尝试了下一个项目的循环,但不会将它们全部结合起来。 foreach(IList p排列集合) var result = p.Zip(permutationCollection.ElementAt(x + 1),(first,second)=> {if(first!= second){return first +“/”+第二;}否则返回second.ToString();}); } – Haxsta 2014-11-14 13:26:43

相关问题