static void Main(string[] args) { try { string path = args[0]; string outpath = args[1]; var words = FileHandler.ReadStringsFromFile(path); AnagramFinder anagramFinder = new AnagramFinder(); var anagramDictionary = anagramFinder.FindAnagrams(words.Split('\n')); var result = anagramDictionary.Values.Where(list => list.Count > 1).Select( wordList => wordList.Aggregate((res, word) => String.Format("{0}, {1}", res, word))); FileHandler.WriteLinesToFile(result, outpath); } catch (IndexOutOfRangeException) { Console.WriteLine( "Некорректные аргументы команданой строки (путь к входному файлу, путь к выходному файлу"); } catch (IOException) { Console.WriteLine("Ошибка доступа к файлу"); } catch (Exception exception) { Console.WriteLine(exception.Message); } }
static void GetAnagrams(string word) { string path = Environment.CurrentDirectory + @"/dictionary/zdf-win3.txt"; var dict = File.ReadAllLines(path).ToList(); Stopwatch sw = new Stopwatch(); sw.Start(); var anagrams = AnagramFinder.GetAnagrams(word, dict); sw.Stop(); Console.WriteLine($"\nВремя поиска: {sw.Elapsed.TotalMilliseconds:f2} мс"); Console.WriteLine($"\nКоличество анаграмм: {anagrams.Count}"); Console.WriteLine("\nАнаграммы:\n"); foreach (var anagram in anagrams) { Console.WriteLine(anagram); } }
static void Main(string[] args) { AnagramFinder af = new AnagramFinder(); List <string> wordList = new List <string> { "cab", "aaa", "abc", "cbbbba", "a", "qwer" }; List <List <string> > resultList = af.Finder(wordList); foreach (var list in resultList) { Console.WriteLine("************"); foreach (var item in list) { Console.WriteLine(item); } } Console.WriteLine(); }