class Program { static void Main(string[] args) { HashSet<string> hash=new HashSet<string> (); //url列表 StreamReader reader = new StreamReader( "AccessURL.txt", true); string url = ""; List<string> list = new List<string>(); while (!reader.EndOfStream) { url = reader.ReadLine(); list.Add(url); } reader.Close(); Dictionary<string,bool> dic=new Dictionary<string,bool> (); DateTime time1 = DateTime.Now; foreach(string s in list) { hash.Add(s); } DateTime time2 = DateTime.Now; TimeSpan t = new TimeSpan(time2.Ticks - time1.Ticks); Console.WriteLine("hash add: " + t.Ticks.ToString()); time1 = DateTime.Now; foreach(string s in list) { dic.Add(s,true); } time2 = DateTime.Now; t = new TimeSpan(time2.Ticks - time1.Ticks); Console.WriteLine("dicadd: "+t.Ticks.ToString()); time1 = DateTime.Now; foreach (string s in list) { hash.Contains(s); } time2 = DateTime.Now; t = new TimeSpan(time2.Ticks - time1.Ticks); Console.WriteLine("hashfind: " + t.Ticks.ToString()); time1 = DateTime.Now; foreach (string s in list) { dic.ContainsKey(s); } time2 = DateTime.Now; t = new TimeSpan(time2.Ticks - time1.Ticks); Console.WriteLine("dic find: " + t.Ticks.ToString()); Console.ReadLine(); } } 运行结果: hash add: 625000 dicadd: 156250 hashfind: 468750 dic find: 156250 (1)Dictionary适合数据非常有层次性的东西。特别是具有目录结构的东西。Dictionary本身的含义就是词典嘛。 (2)保存URL的时候,应该Dictionary比hashSet快。 保存大量的md5码的时候,Dictionary比hashSet快。