珠海网站建设厚瑜,个人网站做cpa,保定市做网站公司地址电话,商旅平台有哪些Hashtable和Dictionary都是.Net下的表示键值对的集合#xff0c;那么我们在使用中该选择Hashtable还是Dictionary#xff1f;下边我们看看他们之间的区别#xff1a;1、DictionaryK,V在使用中是顺序存储的#xff0c;而Hashtable由于使用的是哈希算法进行数据存储那么我们在使用中该选择Hashtable还是Dictionary下边我们看看他们之间的区别1、DictionaryK,V在使用中是顺序存储的而Hashtable由于使用的是哈希算法进行数据存储是无序的。2、Dictionary的key和value是泛型存储Hashtable的key和value都是object3、Dictionary是泛型存储不需要进行类型转换Hashtable由于使用object在存储或者读取值时都需要进行类型转换所以比较耗时4、单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分。多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减。5、在通过代码测试的时候发现key是整数型Dictionary的效率比Hashtable快如果key是字符串型Dictionary的效率没有Hashtable快。对于如何进行选择个人倾向于使用Dictionary原因是1、Dictionary是可排序的Hashtable如果想排序还需要采用别的方式进行2、Dictionary有泛型优势效率要高Hashtable用法举例 Hashtable hashtable new Hashtable();hashtable.Add(id, BH0001);hashtable.Add(name, TM);hashtable.Add(sex, 男);Console.WriteLine(\t 键\t 值);foreach (DictionaryEntry dicEntry in hashtable)Console.WriteLine(\t dicEntry.Key \t dicEntry.Value);
运行结果Dictionary用法举例 Dictionarystring,string dictionary new Dictionarystring, string();dictionary.Add(id, BH0001);dictionary.Add(name, TM);dictionary.Add(sex, 男);Console.WriteLine(\t 键\t 值);foreach (var dic in dictionary)Console.WriteLine(\t dic.Key \t dic.Value);
运行结果C# .net 3.5 以上的版本引入 Linq 后字典Dictionary排序变得十分简单用一句类似 sql 数据库查询语句即可搞定不过.net 2.0 排序要稍微麻烦一点。下面举例说明dictionary的排序方法 dictionary按值value排序Dictionarystring, int dic new Dictionarystring, int();dic.Add(index.html, 50);dic.Add(product.html, 13);dic.Add(aboutus.html, 4);dic.Add(online.aspx, 22);dic.Add(news.aspx, 18);
private static void DictonarySort(Dictionarystring, int dic){var dicSort from objDic in dic orderby objDic.Value descending select objDic;foreach (KeyValuePairstring, int kvp in dicSort)Console.WriteLine(kvp.Key kvp.Value );} 排序结果 index.html50 online.aspx22 news.aspx18 product.html13 aboutus.html4 上述代码是按降序倒序排列如果想按升序顺序排列只需要把变量 dicSort 右边的 descending 去掉即可。 C# dictionary key 排序 如果要按 Key 排序只需要把变量 dicSort 右边的 objDic.Value 改为 objDic.Key 即可。