查找所有候选人

时间:2017-03-04 16:37:17

标签: c# loops

我正在尝试使用C#使用循环获得以下输出,我想始终从A开始,然后创建包含B,C,D和E的所有可能路径,如下所示:

A B C D E
A B C E D
A B D C E
A B D E C
A B E C D
A B E D C

A C B D E
A C B E D
A C D B E
A C D E B
A C E B D
A C E D B

A D B C E
A D B E C
A D C B E
A D C E B
A D E B C
A D E C B

A E B C D
A E B D C
A E C B D
A E C D B
A E D B C
A E D C B

我已经编写了一个示例C#代码,但我总是被卡住而没有得到整个字符串。

1 个答案:

答案 0 :(得分:1)

您可以检查下一个循环变量是否不等于任何先前的循环变量,如下所示:

char[] arr = { 'B', 'C', 'D', 'E' };

foreach (var b in arr)
{
    foreach (var c in arr)
        if (c != b)
            foreach (var d in arr)
                if (d != c && d != b)
                    foreach (var e in arr)
                        if (e != d && e != c && e != b)
                            Console.WriteLine(string.Concat('A', b, c, d, e));
    Console.WriteLine();
}