C# 哈希表(Hashtable)
C# 哈希表(Hashtable)
Hashtable 類代表了一系列基于鍵的哈希代碼組織起來的鍵/值對(duì)。它使用鍵來訪問集合中的元素。
當(dāng)您使用鍵訪問元素時(shí),則使用哈希表,而且您可以識(shí)別一個(gè)有用的鍵值。哈希表中的每一項(xiàng)都有一個(gè)鍵/值對(duì)。鍵用于訪問集合中的項(xiàng)目。
Hashtable 類的方法和屬性
下表列出了 Hashtable 類的一些常用的 屬性:
屬性 | 描述 |
---|---|
Count | 獲取 Hashtable 中包含的鍵值對(duì)個(gè)數(shù)。 |
IsFixedSize | 獲取一個(gè)值,表示 Hashtable 是否具有固定大小。 |
IsReadOnly | 獲取一個(gè)值,表示 Hashtable 是否只讀。 |
Item | 獲取或設(shè)置與指定的鍵相關(guān)的值。 |
Keys | 獲取一個(gè) ICollection,包含 Hashtable 中的鍵。 |
Values | 獲取一個(gè) ICollection,包含 Hashtable 中的值。 |
下表列出了 Hashtable 類的一些常用的 方法:
序號(hào) | 方法名 & 描述 |
---|---|
1 | public virtual void Add( object key, object value ); 向 Hashtable 添加一個(gè)帶有指定的鍵和值的元素。 |
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 中移除帶有指定的鍵的元素。 |
實(shí)例
下面的實(shí)例演示了哈希表(Hashtable)的概念:
實(shí)例
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();
}
}
}
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();
}
}
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
007: Ritesh Saikia 004: Mausam Benazir Nur 005: M. Amlan 008: Nuha Ali 002: Abida Rehman 003: Joe Holzner 001: Zara Ali 006: M. Arif