using System.Collections.Generic; internal class Anagram { private string v; // Anagram is initialized with a string to test other strings against public Anagram(string v) { this.v = v.ToLower(); } // Match takes an array of strings and returns an array that contains // All anagrams of this.v public string[] Match(string[] inp) { List ret = new List(); foreach(string val in inp) { if(this.v.Length != val.Length) { continue; } string valTest = val.ToLower(); bool isAnagram = true; if(this.v == valTest) { continue; } for(int i = 0; i < this.v.Length; i++) { int idx = valTest.IndexOf(this.v[i]); if(idx == -1) { isAnagram = false; } if(!isAnagram) { break; } valTest = valTest.Substring(0, idx)+valTest.Substring(idx+1); } if(isAnagram) { ret.Add(val); } } return ret.ToArray(); } }