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 Sub
C#、VB範例下載: HybridDictionary.rar
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET