[C#.NET][VB.NET] 一般集合 – ListDictionary 集合 類別簡介

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 命名空間裡;

其類別特性如下:

  1. 用於包含10個或更少項目的集合,對大集合沒效率。
  2. 集合內容存放的順序與加入順序無關,ListDictionary 會依自己的演算方式來排序順序
  3. ListDictionary類別和Hashtable 類別具有相同的介面。
  4. 需使用 DictionaryEntry 結構來取得 ListDictionary 類別的索引鍵(Key)與內容(Value)

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

Image result for microsoft+mvp+logo