如何使这个ForEach方法递归?

时间:2016-10-28 20:44:19

标签: c# recursion

我有这个非常令人尴尬的代码,它采用8个单词的短语,然后生成这些单词的每个字母组合。稍后它将它们与字典进行比较并返回真实单词的列表。

是的,你可以看到我的问题,我只能说8个单词,如何让它变得更有活力,可以选择合适的单词?我意识到我可以计算单词数组并使用计数来生成一个运行到该数字的递归方法,但是对于我的生活,我不知道它是如何工作的。

 private List<string> CreateAnagrams(string phrase)
    {
        phrase = phrase.ToLower();
        string[] GeneratedWords = phrase.Split(' ');

        List<string> AllGenWords = new List<string>();

        foreach (var letter0 in GeneratedWords[0]) {
          foreach (var letter1 in GeneratedWords[1]) {
                foreach (var letter2 in GeneratedWords[2]) {
                    foreach (var letter3 in GeneratedWords[3]) {
                        foreach (var letter4 in GeneratedWords[4]) {
                            foreach (var letter5 in GeneratedWords[5]) {
                                foreach (var letter6 in GeneratedWords[6]) {
                                    foreach (var letter7 in GeneratedWords[7]) {
                                        AllGenWords.Add(letter0.ToString() + letter1.ToString() + letter2.ToString() + letter3.ToString() + letter4.ToString() + letter5.ToString() + letter6.ToString() + letter7.ToString());
                                        }
                                }
                            }
                        }
                    }
                }
            }

        }
        return AllGenWords;
    }

0 个答案:

没有答案
相关问题