AnagramHashBag.MyTest.AnagramClasses C# (CSharp) Method

AnagramClasses() public static method

public static AnagramClasses ( SCG ss ) : System.Collections.Generic.IEnumerable>
ss SCG
return System.Collections.Generic.IEnumerable>
        public static SCG.IEnumerable<SCG.IEnumerable<String>> AnagramClasses(SCG.IEnumerable<String> ss)
        {
            IDictionary<HashBag<char>, TreeSet<String>> classes
              = new HashDictionary<HashBag<char>, TreeSet<String>>();
            foreach (String s in ss)
            {
                HashBag<char> anagram = AnagramClass(s);
                TreeSet<String> anagramClass;
                if (!classes.Find(ref anagram, out anagramClass))
                    classes[anagram] = anagramClass = new TreeSet<String>();
                anagramClass.Add(s);
            }
            foreach (TreeSet<String> anagramClass in classes.Values)
                if (anagramClass.Count > 1)
                    yield return anagramClass;
        }