首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# Hashtable 哈希表完整操作指南

     編輯:關於C#

基本概念

Hashtable 位於 System.Collections,以 key/value 鍵值對儲存資料,key 區分大小寫、不可重複,key/value 均為 object 型別,可存放任意型別資料。

常用操作

操作方法/屬性說明
新增Add(key, value)key 重複會拋出例外
移除單筆Remove(key)
清空Clear()
判斷 key 存在Contains(key) / ContainsKey(key)回傳 bool
存取值ht[key] (索引子)key 不存在回傳 null
取得所有 keyht.Keys回傳 ICollection
取得所有 valueht.Values回傳 ICollection

完整範例

using System;
using System.Collections;

class Demo
{
    static void Main()
    {
        Hashtable ht = new Hashtable();
        ht.Add("E", "e");
        ht.Add("A", "a");
        ht.Add("C", "c");
        ht.Add("B", "b");

        Console.WriteLine(ht["A"]); // a
        Console.WriteLine(ht.Contains("E")); // True

        ht.Remove("C");
        ht.Clear();
        Console.WriteLine(ht["A"]); // null
    }
}

遍歷哈希表

foreach (DictionaryEntry de in ht)
{
    Console.WriteLine($"Key: {de.Key}, Value: {de.Value}");
}

排序輸出 (Hashtable 本身不保證順序)

ArrayList keys = new ArrayList(ht.Keys);
keys.Sort(); // 依字母排序
foreach (string k in keys)
    Console.WriteLine($"{k}: {ht[k]}");

替代方案:SortedList / Dictionary<TKey, TValue>

  • SortedList:內部依 key 自動排序,效能較 Hashtable 低,適合資料量小且需順序的場景。
  • Dictionary<TKey, TValue> (Generic):型別安全、效能優於 Hashtable,**推薦新專案優先使用**。
var dict = new Dictionary { {"c",41}, {"a",42}, {"d",11}, {"b",13} };
foreach (var kv in dict.OrderBy(k => k.Key))
    Console.WriteLine($"{kv.Key}: {kv.Value}");

效能與選擇建議

集合型別安全排序效能適用場景
Hashtable否無序中舊版相容、非泛型需求
SortedList否Key 排序低 (插入 O(n))小量資料需排序
Dictionary<TKey,TValue>是無序高**一般首選**
SortedDictionary<TKey,TValue>是Key 排序中 (O(log n))需排序且型別安全
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved