[C#.NET][VB.NET] 一般集合 - HybridDictionary 集合 類別簡介

  • 10001
  • 0
  • C#
  • 2021-07-18

續上一篇[C#.NET][VB.NET] 一般 / 泛型 Generic Collection 集合型別介紹

HybridDictionary 類別是特殊的集合,彌補標準字典的限制,它位於 System.Collections.Specialized 命名空間 裡;

其類別特性如下:

  1. 一開會先實作成ListDictionary的小集合,當集合變大時,將會把自己變成Hashtable的大集合。
  2. 當你不知道你的集合內容大小時,HybridDictionary 類別就是最佳選擇。
  3. 需使用DictionaryEntry 結構來取得ListDictionary 類別的索引鍵(Key)與內容(Value)。
  4. 不適合用在排序。
  5. 擁有ListDictionaryHashtable特性,以下範例就是從 [C#.NET][VB.NET] 一般集合 – ListDictionary 集合 類別簡介 來的

 

以下範例需要命名空間System.Collections.SpecializedSystem.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 Sub

C#、VB範例下載: HybridDictionary.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo