定义可设置或检索的字典键/值对。

命名空间:System.Collections
程序集:mscorlib(在 mscorlib.dll 中)

foreach 语句是对枚举数的包装,它只允许从集合中读取,不允许写入集合。

C# 语言中的 foreach 语句(在 Visual C++ 中为 for each,在 Visual Basic 中为 For Each)需要集合中每个元素的类型。由于 IDictionary 的每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型。而是 DictionaryEntry 类型。

下面的示例演示如何使用 DictionaryEntry 来循环访问 Hashtable 对象。

using System;
using System.Collections;class Example
{public static void Main(){// Create a new hash table.//Hashtable openWith = new Hashtable();// Add some elements to the hash table. There are no // duplicate keys, but some of the values are duplicates.openWith.Add("txt", "notepad.exe");openWith.Add("bmp", "paint.exe");openWith.Add("dib", "paint.exe");openWith.Add("rtf", "wordpad.exe");// When you use foreach to enumerate hash table elements,// the elements are retrieved as KeyValuePair objects.Console.WriteLine();foreach (DictionaryEntry de in openWith){Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);}}
}

另一种方法:

System.Collections.IDictionaryEnumerator ht = ht.GetEnumerator();
while (ht.MoveNext())
{ht.Key.ToString();//键ht.Value.ToString();//值 //这里已经取到当前的键、值对了,怎么输出和存储就看自己的了    
}

Hashtable 类
     表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。
     每个元素是一个存储在 DictionaryEntry 对象中的键/值对。键不能为空引用(Visual Basic 中为 Nothing),但值可以。

用作 Hashtable 中的键的对象必须实现或继承 Object.GetHashCode 和 Object.Equals 方法。如果键相等性只是引用相等性,这些方法的继承实现将满足需要。此外,如果该键存在于 Hashtable 中,那么当使用相同参数调用这些方法时,这些方法必须生成相同的结果。只要键对象用作 Hashtable 中的键,它们就必须是永远不变的。

当把某个元素添加到 Hashtable 时,将根据键的哈希代码将该元素放入存储桶中。该键的后续查找将使用键的哈希代码只在一个特定存储桶中搜索,这将大大减少为查找一个元素所需的键比较的次数。

Hashtable 的加载因子确定元素与存储桶的最大比率。加载因子越小,平均查找速度越快,但消耗的内存也增加。默认的加载因子 1.0 通常提供速度和大小之间的最佳平衡。当创建 Hashtable 时,也可以指定其他加载因子。

当向 Hashtable 添加元素时,Hashtable 的实际加载因子将增加。当实际加载因子达到此加载因子时,Hashtable 中存储桶的数目自动增加到大于当前 Hashtable 存储桶数两倍的最小质数。

Hashtable 中的每个键对象必须提供其自己的哈希函数,可通过调用 GetHash 访问该函数。但是,可将任何实现 IHashCodeProvider 的对象传递到 Hashtable 构造函数,而且该哈希函数用于该表中的所有对象。

总之:DictionaryEntry就是键值对
Key是键
Value是值
Hashtable 内的每一组对象就是一个DictionaryEntry 
例如我们要循环hashtable

foreach (DictionaryEntry de in myHashtable) {...}

Hashtable就是一个DictionaryEntry的集合
在一个Hashtable中
Key的值是不可以重复的,必须是唯一的,但Value的值可以是重复的
在查询时,Key担当索引的功能

http://apps.hi.baidu.com/share/detail/34942799

http://www.cnblogs.com/windteam/archive/2011/07/04/2097229.html

Hashtable的遍历(DictionaryEntry)相关推荐

  1. C# hashTable的遍历【2种方法】与排序【3种方法】

    private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...

  2. 学用 ASP.Net 之 System.Collections.Hashtable 类与 DictionaryEntry 结构

    DictionaryEntry 是包含 Key / Value 一对值的简单结构; Hashtable(哈希表)是一组 Key / Value 的集合, 准确地讲是一组 DictionaryEntry ...

  3. Hashtable的遍历

    foreach( DictionaryEntry de in hashTable) {  console.WriteLine("Key -- {0}; Value --{1}.", ...

  4. Hashtable多线程遍历问题

    If a thread-safe implementation is not needed, it is recommended to use HashMap in place of code Has ...

  5. java Hashtable的遍历方法

    今天遇到用hashtable取值时发现取得的值是排过序的,而我并希望它排序输出,因为它是倒序输出,查一下原因是因为我用下面的第一种方法取值的,将hashtable的值排序输出了,这个真是我疏忽的问题, ...

  6. Hashtable:仅有两列的表

    Hashtable集合和ArrayList.Stack和Queue都不一样,该集合可用看作是一个仅有两列的表格,第一列是键,存放的是唯一不可重复的值.第二列是值,随便放什么都可以.由于Hashtabl ...

  7. 哈希表(HashTable)探究(转)

    HashTable 通常称为哈希表,它表示键(key)/值(value)对的集合. 1.HashTable 的构造函数: HashTable()              //初始化为0个元素的空实例 ...

  8. 字典实体类:DictionaryEntry类

    DictionaryEntry类是一个字典集合,主要包括的内容是键/值对.这样的组合方式能够方便地定位数据,当中的"键"具备唯一性,类似于数据库中的"id",一 ...

  9. C#中Hashtable

    哈希表Hashtable是一个重要的集合类型,下面我来对他的基本用法做个小小的总结. using System.Collections; //使用Hashtable时,必须引入这个命名空间 1.Has ...

最新文章

  1. 如何利用 C# 爬取带 Token 验证的网站数据?
  2. 今天收到IBM cat 测试
  3. 高通 MSM8K bootloader : SBL1 .
  4. 100条常用写作谚语(5)(6)(7)(8)
  5. 基于javaweb+jsp+mysql的高校家教管理系统
  6. directsound之播放pcm
  7. JSP基础之九九乘法表(利用JSP脚本段制作一张九九乘法表)
  8. Axure RP从入门到精通(二十)鼠标指针函数
  9. java运行环境简称_java程序的运行环境简称为什么?
  10. pdfobject div中预览pdf
  11. 系统性能测试实施流程
  12. 备份计算机软件,如何备份电脑里面的软件
  13. zoj 1104 Leaps Tall Buildings(超人不会飞- -。。)
  14. 程序员路在何方的辛苦工作
  15. hadoop错误:java.io.IOException: There appears to be a gap in the edit log. We expected txid 1
  16. 关于送货单的格式要求?
  17. dw css定位,css关于position属性的用法详解(绝对定位和相对定位的混淆)
  18. 【结绳4.0】添加权限
  19. 权威公布岑巩马家寨为一代佳人陈圆圆归隐地
  20. SAP与三大财务报表之 “现金流量表”

热门文章

  1. JQuery 复制粘贴上传图片插件(textarea 和 tinyMCE)
  2. 肝癌花了70万,但我不建议你买保险
  3. vscode 底部状态栏调试按钮不见了
  4. 动手学深度学习:7.8 Adam算法
  5. java代码ping服务IP工具类(Windows,Linux环境)
  6. 【创新实训8】手势理解功能与实际应用整合
  7. 机关办事必备!简单两步掌握一键卡复印技巧
  8. “Ubuntu 20.04 LTS _Focal Fossa - Release amd64 (20200423)” 的盘片插入驱动器“/cdrom/”再按「回车」键
  9. 吴建平院士:互联网视频技术在疫情防控中的重要作用
  10. vivo入驻华为测试鸿蒙,VIVO联动华为?官方宣传图出现华为智联,为鸿蒙合作埋下伏笔...