HybridDictionary 類別是特殊的集合,彌補標準字典的限制,它位於 System.Collections.Specialized 命名空間 裡;
其類別特性如下:
- 一開會先實作成ListDictionary的小集合,當集合變大時,將會把自己變成Hashtable的大集合。
 - 當你不知道你的集合內容大小時,HybridDictionary 類別就是最佳選擇。
 - 需使用DictionaryEntry 結構來取得ListDictionary 類別的索引鍵(Key)與內容(Value)。
 - 不適合用在排序。
 - 擁有ListDictionary與Hashtable特性,以下範例就是從 [C#.NET][VB.NET] 一般集合 – ListDictionary 集合 類別簡介 來的
 
以下範例需要命名空間System.Collections.Specialized與System.Collections
如何使用HybridDictionary
1.引用 HybridDictionary 類別。
HybridDictionary hd = new HybridDictionary();
2.加入索引鍵(Key)及內容(Value)。
hd.Add(1, "one"); hd.Add("2", "two"); hd.Add("0", "zero");
如何列出HybridDictionary集合
foreach (DictionaryEntry Table in hd) 
{     
	Console.WriteLine("索引鍵:{0},值:{1}", Table.Key, Table.Value); 
}
如何判斷HybridDictionary索引鍵是否存在
string str = "1"; if (hd.Contains(str)) 
{     
	Console.WriteLine("索引鍵:{0} 存在", str); 
} 
else {     
	Console.WriteLine("索引鍵:{0} 不存在", str); 
}
C#完整範例用法如下:
private void button1_Click(object sender, EventArgs e) 
{     
	//1.引用HybridDictionary類別     
	HybridDictionary hd = new HybridDictionary();     
	//2.加入索引鍵(Key)及內容(Value)     
	hd.Add(1, "one");     
	hd.Add("2", "two");     
	hd.Add("0", "zero");     
	//取代     
	hd["0"] = 3;     
	//列出物件所包含的索引鍵及內容     
	foreach (DictionaryEntry Table in hd)     
	{         
		Console.WriteLine("索引鍵:{0},值:{1}", Table.Key, Table.Value);     
	}     
	foreach (object Table in hd.Keys)     
	{         
		Console.WriteLine(Table.ToString());     
	}     
	foreach (object Table in hd.Values)     
	{         
		Console.WriteLine(Table.ToString());     
	}     
	//判斷索引鍵是否存在     
	string str = "1";     
	if (hd.Contains(str))     
	{         
		Console.WriteLine("索引鍵:{0} 存在", str);     
	}     
	else     
	{         
		Console.WriteLine("索引鍵:{0} 不存在", str);     
	} 
}    
VB完整範例用法如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     
	'1.引用HybridDictionary類別     
	Dim ld As New HybridDictionary()     
	'2.加入索引鍵(Key)及內容(Value)     
	ld.Add(1, "one")     
	ld.Add("2", "two")     
	ld.Add("0", "zero")     
	'取代     
	ld("0") = 3     
	'列出物件所包含的索引鍵及內容     
	For Each Table As DictionaryEntry In ld         
		Console.WriteLine("索引鍵:{0},值:{1}", Table.Key, Table.Value)     
	Next     
	For Each Table As Object In ld.Keys         
		Console.WriteLine(Table.ToString())     
	Next     
	For Each Table As Object In ld.Values         
		Console.WriteLine(Table.ToString())     
	Next     
	'判斷索引鍵是否存在     
	Dim str As String = "1"     
	If ld.Contains(str) 
	Then         
		Console.WriteLine("索引鍵:{0} 存在", str)     
	Else         
	Console.WriteLine("索引鍵:{0} 不存在", str)     
End If End SubC#、VB範例下載: HybridDictionary.rar
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET