Beispiel #1
0
    public static List <string> GenerateAnagrams(string filename, string letters)
    {
        List <string> result = new List <string>();

        List <BagAnagrams> dictionary = LoadDictionary(filename);
        Bag bag = new Bag(letters);

        Anagrams.anagrams(bag, dictionary, 0,

                          // bottom of main loop
                          delegate()
        {
            //ProgressBar.PerformStep();
            //Application.DoEvents();
        },

                          // done pruning
                          delegate(uint recursion_level, List <BagAnagrams> pruned_dictionary)
        {
            if (recursion_level == 0)
            {
                //ProgressBar.Maximum = pruned_dictionary.Count;
                //Application.DoEvents();
            }
        },

                          // found a top-level anagram
                          delegate(List <string> words)
        {
            string display_me = "";
            foreach (string s in words)
            {
                if (display_me.Length > 0)
                {
                    display_me += " ";
                }
                display_me += s;
            }

            result.Add(display_me);
        });

        return(result);
    }