static void Main(string[] args) { Console.WriteLine("双城记"); List <string> words = TestHelper.ReadFile("测试文件1/双城记.txt"); Console.WriteLine("总单词数: " + words.Count); Stopwatch t = new Stopwatch(); LinkedList3Dictionary <string, int> dic = new LinkedList3Dictionary <string, int>(); t.Start(); foreach (var word in words) { //如果单词不存在字典中,说明是第一次遇见这个单词,频次设为1 if (!dic.ContainsKey(word)) { dic.Add(word, 1); } else //如果单词已经存在在字典中,将单词对应的频次+1 { dic.Set(word, dic.Get(word) + 1); } } t.Stop(); Console.WriteLine("不同的单词总数: " + dic.Count); Console.WriteLine("city出现的频次: " + dic.Get("city")); Console.WriteLine("运行时间: " + t.ElapsedMilliseconds + "ms"); Console.Read(); }
static void Main(string[] args) { Console.WriteLine("双城记"); List <string> words = TestHelper.ReadFile("测试文件1/双城记.txt"); Console.WriteLine("词汇量总数:" + words.Count); Console.WriteLine(); Console.WriteLine("链表字典"); LinkedList3Dictionary <string, int> dic1 = new LinkedList3Dictionary <string, int>(); long t1 = TestDictionary(dic1, words); Console.WriteLine("不同的单词总数: " + dic1.Count); Console.WriteLine("city出现的频次: " + dic1.Get("city")); Console.WriteLine("运行时间: " + t1 + "ms"); Console.WriteLine(); Console.WriteLine("有序数组字典"); SortedArray2Dictionary <string, int> dic2 = new SortedArray2Dictionary <string, int>(); long t2 = TestDictionary(dic2, words); Console.WriteLine("不同的单词总数: " + dic2.Count); Console.WriteLine("city出现的频次: " + dic2.Get("city")); Console.WriteLine("运行时间: " + t2 + "ms"); //SortedList的实现原理和SortedArray2是一样的 :) Console.WriteLine("C#中的有序数组"); SortedList <string, int> dic3 = new SortedList <string, int>(); //对于红黑树,在后续的课程会介绍 :) Console.WriteLine("C#中的红黑树字典"); SortedDictionary <string, int> dic4 = new SortedDictionary <string, int>(); Console.Read(); }