本文介绍了在C#项目的N阵列的所有组合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以有不同的长度为N阵列结果
重要的是,我不知道有多少数组可以有结果
让我们有3个数组:

I can have N arrays of different length.
Important thing is that I dont know how many arrays I can have.
Let's we have 3 arrays:

arr1: { obj11, obj12, obj13, ...., obj1J }  
arr2: { obj21, obj22, obj23, .........., obj2K }  
arr3: { obj31, obj32, obj33, ................, obj3L }

我怎么能生产出每一个项目的组合与对方是这样的:

How can I produce combinations of each item with each other like this:

1.  [obj11, obj21, obj31]  
2.  [obj11, obj21, obj32]  
..  
L.  [obj11, obj21, obj 3L]  
L+1.[obj11, obj22, obj 31]  
.... 

说到C#实现(也许LINQ的?)

Talking about C# implementation (maybe Linq?)

推荐答案

您正在寻找所有序列的笛卡尔乘积。埃里克利珀有实现的一个很好的写在这里:

You're looking for the Cartesian Product of all the sequences. Eric Lippert has a nice write up of an implementation here: http://ericlippert.com/2010/06/28/computing-a-cartesian-product-with-linq/

这篇关于在C#项目的N阵列的所有组合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 02:07