以下是PetShop中DBHelper中的使用过程:

//创建哈希表 Hashtable to store cached parameters
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

...

//缓存数据
string cacheKey = "xxxx"
SqlParameter[] commandParameters= xxx;
parmCache[cacheKey] = commandParameters;

...

//获取数据
string cacheKey = "xxxx"
cachedParms = (SqlParameter[])parmCache[cacheKey];

其他关于哈希表的介绍
 
一 哈希表(Hashtable)简述

在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.

二 哈希表的简单操作

在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
 在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
 从哈希表中移除所有元素:           HashtableObject.Clear();
 判断哈希表是否包含特定键key:      HashtableObject.Contains(key);
 下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
  public static void Main()
  {
  Hashtable ht=new Hashtable(); //创建一个Hashtable实例
  ht.Add("E","e");//添加key/value键值对
  ht.Add("A","a");
  ht.Add("C","c");
  ht.Add("B","b");
  string s=(string)ht["A"];
  if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
    Console.WriteLine("the E key:exist");
  ht.Remove("C");//移除一个key/value键值对
  Console.WriteLine(ht["A"]);//此处输出a
  ht.Clear();//移除所有元素
  Console.WriteLine(ht["A"]); //此处将不会有任何输出
  }
}

三 遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:
 for(DictionaryEntry de in ht) //ht为一个Hashtable实例
 {
   Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
   Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
 }

四 对哈希表进行排序

对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
 ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
 akeys.Sort(); //按字母顺序进行排序
 for(string skey in akeys)
 {
   Console.Write(skey + ":");
   Console.WriteLine(ht[skey]);//排序后输出
 }

转载于:https://www.cnblogs.com/gsk99/archive/2011/08/28/2155988.html

.net中哈希表的使用 Hashtable相关推荐

  1. c ++中哈希表如何访问_C / C ++中的哈希表–完整的实现

    c ++中哈希表如何访问 A Hash Table in C/C++ (Associative array) is a data structure that maps keys to values. ...

  2. 在java中哈希表判断某个元素是否存在的原理

    在java中哈希表判断某个元素是否存在的原理 在本文中我们将介绍,在hash表中如何判断两个元素是否重复. 首先,我们们需要知么hash表是什么? Hash表由称为离散表,是由数组加链表实现的一种数据 ...

  3. JAVA中哈希表的使用-遍历map集合

    java中哈希表的使用第二例-即将罗马数字转换为整数 代码: class Solution { public int romanToInt(String s) { HashMap<Charact ...

  4. java hashtable排序_java中哈希表中有迭代器模式的实现,可以认为其是顺序表吗?...

    先上答案:HashTable (哈希表)不是顺序表. 分析如下: 要搞清楚这个问题需要明确两个问题: 1. 什么是顺序表 2. 哈希表的数据结构 先说什么是顺序表.WIKI的解释是:顺序表是在计算机内 ...

  5. C#中哈希表(HashTable)的用法详解

    1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...

  6. C++ STL中哈希表 hash_map介绍

    0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能.例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华 ...

  7. java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?

    时代总是在不断的变化发展的,高新技术的应用也越来越普遍,大家对于新知识的渴望越来越强烈.java中很多的基础知识都是非常重要的.一起来看看关于HashMap的知识吧. 一. HashMap概述: Ha ...

  8. 在java中 哈希表会经常出现哈希碰撞吗

    在Java中,哈希表可能会经常出现哈希碰撞.哈希表是一种根据键(Key)来访问值(Value)的数据结构,通过哈希函数将键映射到哈希表的索引位置上.由于哈希函数的映射结果可能不唯一,不同的键可能会被映 ...

  9. python中哈希表和set的使用

    哈希表不能将可变对象作为key值,即引用类型的内容不能是可变的,这样不安全,因为hashcode函数是根据对象的内容计算出key和value的位置,如果引用的内容可变,那么每次查找的位置结果都不一样, ...

  10. 哈希表原理,Hashtable(Hushmap)原理

    哈希表 Hash table 散列表 特点 接近O(1)的查找效率 根据键(key 关键值)而直接访问在内存存储位置 本质上是一个数组,数组里面存的链表 原理和例子 原始数据(key 关键值) -- ...

最新文章

  1. MySQL 5.6中如何定位DDL被阻塞的问题
  2. PHP验证邮箱地址代码
  3. 理论+技术+代码已经准备完毕!2021年啃透花书!
  4. mactex中文配置
  5. 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
  6. 网页弹出窗口代码【来源于网络】
  7. Android 网络状态的监控
  8. 【项目合作】移动端人体姿态估计
  9. python工作流程_讨论 - 廖雪峰的官方网站
  10. vue 大概流程(未完)
  11. php barcode设置黑条宽度,JsBarcode常用参数设置
  12. 二级域名分发系统源码
  13. 抽象代数学习 阿贝尔群
  14. DELL灵越笔记本插上耳机后,只有外放耳机无声音的解决方法。
  15. 谁是全球芯片行业的“麒麟才子”?得之可得天下!
  16. 【钉钉-场景化能力包】CRM销售系统集成
  17. 俞敏洪在新东方年会发表演讲:2019,再次出发
  18. SMM--Spring
  19. ubuntu 18.04 局域网无法访问内部DNS的解决办法
  20. Qt 快速入门系列教程

热门文章

  1. 一次性掌握计算机中常见的六类指令
  2. 主子式大于等于零的矩阵是半正定矩阵的证明方法之二
  3. 大学数学实验习题--统计推断 03(附答案)
  4. 2020-11-17 一道有趣的求极限问题
  5. 拥塞控制,图文并茂(挺丰富,借鉴较多大佬的思想)
  6. 我的世界android制作教程,《我的世界手机版》怎么制作mod制作JS教程图文攻略
  7. [Gamma阶段]第四次Scrum Meeting
  8. pageHelper 分页插件使用
  9. Linux Linux程序练习十(网络编程大文件发送)
  10. jQuery als.js 跑马灯