C# 哈希表(Hashtable)
原文链接:http://edu.jb51.net/csharp/csharp-collection-hashtable.html
Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用键来访问集合中的元素。
当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。
Hashtable 类的方法和属性
下表列出了 Hashtable 类的一些常用的 属性:
属性 | 描述 |
---|---|
Count | 获取 Hashtable 中包含的键值对个数。 |
IsFixedSize | 获取一个值,表示 Hashtable 是否具有固定大小。 |
IsReadOnly | 获取一个值,表示 Hashtable 是否只读。 |
Item | 获取或设置与指定的键相关的值。 |
Keys | 获取一个 ICollection,包含 Hashtable 中的键。 |
Values | 获取一个 ICollection,包含 Hashtable 中的值。 |
下表列出了 Hashtable 类的一些常用的 方法:
序号 | 方法名 & 描述 |
---|---|
1 | public virtual void Add( object key, object value ); 向 Hashtable 添加一个带有指定的键和值的元素。 |
2 | public virtual void Clear(); 从 Hashtable 中移除所有的元素。 |
3 | public virtual bool ContainsKey( object key ); 判断 Hashtable 是否包含指定的键。 |
4 | public virtual bool ContainsValue( object value ); 判断 Hashtable 是否包含指定的值。 |
5 | public virtual void Remove( object key ); 从 Hashtable 中移除带有指定的键的元素。 |
实例
下面的实例演示了哈希表(Hashtable)的概念:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main( string [] args) { Hashtable ht = new Hashtable(); ht.Add( "001" , "Zara Ali" ); ht.Add( "002" , "Abida Rehman" ); ht.Add( "003" , "Joe Holzner" ); ht.Add( "004" , "Mausam Benazir Nur" ); ht.Add( "005" , "M. Amlan" ); ht.Add( "006" , "M. Arif" ); ht.Add( "007" , "Ritesh Saikia" ); if (ht.ContainsValue( "Nuha Ali" )) { Console.WriteLine( "This student name is already in the list" ); } else { ht.Add( "008" , "Nuha Ali" ); } // 获取键的集合 ICollection key = ht.Keys; foreach ( string k in key) { Console.WriteLine(k + ": " + ht[k]); } Console.ReadKey(); } } } |
当上面的代码被编译和执行时,它会产生下列结果:
001: Zara Ali 002: Abida Rehman 003: Joe Holzner 004: Mausam Benazir Nur 005: M. Amlan 006: M. Arif 007: Ritesh Saikia 008: Nuha Ali |