如何从C#中的4x4数组中获取所有可能的对?

问题描述:

可以说我有一个2x2阵列。如何从C#中的4x4数组中获取所有可能的对?

[1, 2] 
[3, 4] 

我想获得所有可能的配对。

[1, 2] [1, 3] [1, 4] [2, 3] [2, 4] [3, 4] 

而且我不想像[2, 1]那样的反转对。

有没有人很好的解决这个问题?

+0

你的描述/例子就没有意义了。 – Amit

+3

两个嵌套循环听起来很有希望,你不同意吗? – dasblinkenlight

你实际上需要三个嵌套循环,或将2D列表转换为一维列表,然后让你的排列组合

List<List<int>> My2DList = new List<List<int>>() { new List<int>(){ 1, 2 }, new List<int>(){ 3, 4 } }; // your initial 2d list 
List<int> My1DList = My2DList.Cast<int>().ToList(); // convert to 1d list 
List<List<int>> Permutations = new List<List<int>>(); // prepare a container 

for (int i = 0; i < My1DList.Count; i++) 
    for(int j = i; j < My1DList.Count; j++) 
     Permutations.Add(new List<int>() { My1DList[i], My1DList[j] }); // add your permutations 
+0

哇哇与1D阵列的解决方案是天才..但我怎样才能解决这个3循环。前2个循环遍历数组,但第三个循环是什么? – Djeurissen

+0

需要第三个数组来迭代原始2d数组的行。例程会很相似,但您需要跟踪您将哪个插槽添加到resutl列表中。很高兴我们能够帮助:)请接受/ upvote如果有帮助的答案 –

+1

我upvoted你的答案。但是我没有足够的声望; – Djeurissen