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

C# 6 種常用集合類詳解 (三)

     編輯:關於C語言

4. Hashtable - 雜湊表

鍵值對集合,類似字典但更強大。經過優化,任意型別鍵值存取速度優於其他集合。

var myHT = new Hashtable();
myHT.Add("one", "The");
myHT.Add("two", "quick");
myHT.Add("three", "brown");
myHT.Add("four", "fox");

foreach (string key in myHT.Keys)
    Console.WriteLine(key);

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

核心機制:GetHashCode() 產生整數雜湊碼,決定儲存位置。

5. SortedList - 排序列表

類似 Hashtable,但鍵值陣列已排序。

var sl = new SortedList();
sl["c"] = 41;
sl["a"] = 42;
sl["d"] = 11;
sl["b"] = 13;

foreach (DictionaryEntry de in sl)
    Console.WriteLine($"{de.Key},{de.Value}");
// 輸出按鍵排序:a,42 / b,13 / c,41 / d,11

6. NameValueCollection - 名稱值集合

位於 System.Collections.Specialized,屬特殊集合。

相關類別

  • HybridDictionary:< 10 元素用此,增多自動轉 Hashtable
  • StringCollection:字串專用集合

與 Hashtable 差異

Hashtable 鍵唯一,NameValueCollection 鍵可重複:

var ht = new Hashtable();
ht.Add("key", "value1");
ht.Add("key", "value2"); // 拋出異常

var nvc = new NameValueCollection();
nvc.Add("key", "value1");
nvc.Add("key", "value2"); // 允許,儲存多值
// nvc["key"] 回傳 "value1,value2"

選擇指南

集合特點適用場景
Hashtable快速查找、鍵唯一一般鍵值對儲存
SortedList鍵自動排序需有序遍歷
NameValueCollection鍵可重複、字串優化HTTP 標頭、查詢字串
HybridDictionary小量元素優化元素數量不確定
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved