熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

在C#中應用哈希表(Hashtable)

2013-11-13 10:32:07  來源: .NET編程 

  哈希表(Hashtable)簡述

  在NET Framework中Hashtable是SystemCollections命名空間提供的一個容器用於處理和表現類似key/value的鍵值對其中key通常可用來快速查找同時key是區分大小寫value用於存儲對應於key的值Hashtable中key/value鍵值對均為object類型所以Hashtable可以支持任何類型的key/value鍵值對

  哈希表的簡單操作

  在哈希表中添加一個key/value鍵值對HashtableObjectAdd(keyvalue);
    在哈希表中去除某個key/value鍵值對HashtableObjectRemove(key);
    從哈希表中移除所有元素           HashtableObjectClear();
    判斷哈希表是否包含特定鍵key      HashtableObjectContains(key);
    下面控制台程序將包含以上所有操作
using System;
using SystemCollections; //使用Hashtable時必須引入這個命名空間
class hashtable
{
  public static void Main()
  {
  Hashtable ht=new Hashtable(); //創建一個Hashtable實例
  htAdd(Ee);//添加key/value鍵值對
  htAdd(Aa);
  htAdd(Cc);
  htAdd(Bb);
  string s=(string)ht[A];
  if(htContains(E)) //判斷哈希表是否包含特定鍵其返回值為true或false
    ConsoleWriteLine(the E key:exist);
  htRemove(C);//移除一個key/value鍵值對
  ConsoleWriteLine(ht[A]);//此處輸出a
  htClear();//移除所有元素
  ConsoleWriteLine(ht[A]); //此處將不會有任何輸出
  }
}

  遍歷哈希表

  遍歷哈希表需要用到DictionaryEntry Object代碼如下
 for(DictionaryEntry de in ht) //ht為一個Hashtable實例
 {
   ConsoleWriteLine(deKey);//deKey對應於key/value鍵值對key
   ConsoleWriteLine(deValue);//deKey對應於key/value鍵值對value
 }

  對哈希表進行排序

  對哈希表進行排序在這裡的定義是對key/value鍵值對中的key按一定規則重新排列但是實際上這個定義是不能實現的因為我們無法直接在Hashtable進行對key進行重新排列如果需要Hashtable提供某種規則的輸出可以采用一種變通的做法
 ArrayList akeys=new ArrayList(htKeys); //別忘了導入SystemCollections
 akeysSort(); //按字母順序進行排序
 for(string skey in akeys)
 {
   ConsoleWrite(skey + :);
   ConsoleWriteLine(ht[skey]);//排序後輸出
 }


From:http://tw.wingwit.com/Article/program/net/201311/13926.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.