ListDictionary類別是特殊的集合,彌補標準字典的限制,它位於 System.Collections.Specialized 命名空間裡;
其類別特性如下:
1.用於包含10個或更少項目的集合,對大集合沒效率。
2.集合內容存放的順序與加入順序無關,ListDictionary 會依自己的演算方式來排序順序
3.ListDictionary類別和Hashtable 類別具有相同的介面。
4.需使用DictionaryEntry結構來取得ListDictionary類別的索引鍵(Key)與內容(Value)
續上一篇[C#.NET][VB.NET] 一般 / 泛型 Generic Collection 集合型別介紹
ListDictionary類別是特殊的集合,彌補標準字典的限制,它位於 System.Collections.Specialized 命名空間裡;
其類別特性如下:
- 用於包含10個或更少項目的集合,對大集合沒效率。
- 集合內容存放的順序與加入順序無關,ListDictionary 會依自己的演算方式來排序順序
- ListDictionary類別和Hashtable 類別具有相同的介面。
- 需使用 DictionaryEntry 結構來取得 ListDictionary 類別的索引鍵(Key)與內容(Value)
以下範例需要命名空間 System.Collections.Specialized 與 System.Collections
如何使用ListDictionary
1.引用 ListDictionary 類別。
ListDictionary ld = new ListDictionary();
2.加入索引鍵(Key)及內容(Value),
ld.Add(1, "one");
ld.Add("2", "two");
如何列出ListDictionary集合
foreach (DictionaryEntry Table in ld)
{
Console.WriteLine("索引鍵:{0},值:{1}", Table.Key, Table.Value);
}
如何判斷ListDictionary索引鍵是否存在
string str = "1";
if (ld.Contains(str))
{
Console.WriteLine("索引鍵:{0} 存在", str);
}
else
{
Console.WriteLine("索引鍵:{0} 不存在", str);
}
C#完整範例用法如下:
private void button1_Click(object sender, EventArgs e)
{
//1.引用ListDictionary類別
ListDictionary ld = new ListDictionary();
//2.加入索引鍵(Key)及內容(Value)
ld.Add(1, "one");
ld.Add("2", "two");
ld.Add("0", "zero");
//取代
ld["0"] = 3;
//列出物件所包含的索引鍵及內容
foreach (DictionaryEntry Table in ld)
{
Console.WriteLine("索引鍵:{0},值:{1}", Table.Key, Table.Value);
}
foreach (object Table in ld.Keys)
{
Console.WriteLine(Table.ToString());
}
foreach (object Table in ld.Values)
{
Console.WriteLine(Table.ToString());
}
//判斷索引鍵是否存在
string str = "1";
if (ld.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.引用ListDictionary類別
Dim ld As New ListDictionary()
'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範例下載: ListDictionary.rar
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET