public List <WordFrequency> Analize() { try { var wordDict = new Dictionary <string, int>(); using (var reader = new SimpleCharacterReader()) { string word; while (!string.IsNullOrEmpty(word = ConsumeWord())) { var lowercaseWord = word.ToLowerInvariant(); if (!wordDict.ContainsKey(lowercaseWord)) { wordDict.Add(lowercaseWord, 1); } else { wordDict[lowercaseWord]++; } } } // dispose is implicitly called when exiting the using block var wordFrequencyList = wordDict.Select(pair => new WordFrequency(pair.Key, pair.Value)).ToList(); wordFrequencyList.Sort(); return(wordFrequencyList); } catch (Exception e) { Console.WriteLine(e); return(null); } }
public void TestQuestionOne() { var output = new Question1TestOutput(); using (var simpleReader = new SimpleCharacterReader()) { DeveloperImplementation.RunQuestionOne(simpleReader, output); VerifyQuestionOne(output); } }
public async Task TestQuestionOneAsync() { var output = new Question1TestOutput(); using (var simpleReader = new SimpleCharacterReader()) { await DeveloperImplementation.RunQuestionOne(simpleReader, output); VerifyQuestionOne(output); } }
static void Main(string[] args) { var reader = new SimpleCharacterReader(); var analizer = new WordFrequencyAnalizer(reader); var list = analizer.Analize(); list.ForEach(wf => Console.WriteLine(wf.ToString())); Console.ReadKey(); }
private static async Task TestQuestionOneWithSimpleCharacterReaderAsync(bool verbose) { DeveloperTestImplementationAsync test = new DeveloperTestImplementationAsync(); var output = new Question1TestOutput(); using (var simpleReader = new SimpleCharacterReader()) { if (verbose) { Console.WriteLine("TestQuestionOneWithSimpleCharacterReaderAsync: started"); await test.RunQuestionOne(simpleReader, output); Console.WriteLine("TestQuestionOneWithSimpleCharacterReaderAsync: ended"); } else { await test.RunQuestionOne(simpleReader, output); } } }