[C#.NET][VB.NET] 一般集合 Hashtable 集合 類別 建立查詢表 / 搜尋關鍵字

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

[C#.NET][VB.NET] 一般集合 – Hashtable 集合 類別 建立查詢表 / 搜尋關鍵字

我們可以 Hashtable 類別來做索引鍵(Key)與內容(Value)的對應,假設我們現在需要對應某些使用者的全名與電子郵件地址,這時用Hashtable類別來儲存這樣的對應,在開發上又多了一項選擇。

Hashtable 類別特性如下:

1.使用 Hashtable 類別時需要有索引鍵(Key)與值(Value),但要注意的是索引鍵不能重複

2.用於包含10個或更多項目的集合,對小集合沒效率若是小集合(小於10),則使用 ListDictionary,可穫得較佳的效能

3.集合內容存放的順序與加入順序無關,Hashtable 會依自己的演算方式來排序順序。

4.需使用 DictionaryEntry 結構來取得 Hashtable 的索引鍵(Key)與內容(Value)。

5.不適合用在排序。

如何建立Hashtable

1.匯入System.Collections命名空間

using System.Collections;

2.用Add方法建立

myHash.Add("看先生", www@yahoo.com);

或直接指定

myHash["看先生"] = www@yahoo.com;

如何處理Hashtable

當Hashtable建立完成之後,可以用DictionaryEntry結構逐一處理索引鍵/值組配對

foreach (DictionaryEntry Table in myHash) 
{
	Console.WriteLine("索引鍵:{0},值:{1}",Table.Key,Table.Value);
}

 

也可以用索引鍵來逐一處理

foreach (object Table in myHash.Keys) 
{        
	Console.WriteLine(Table.ToString());              
}

 

如何搜尋關鍵字

ContainsKey判斷集合是否包含某個特定的索引鍵
ContainsValue判斷集合是否包含某個特定的值
string str = "三先生"; 
if (myHash.ContainsKey(str)) 
{        
	Console.WriteLine(str+"存在"); 
} 
else 
{
	Console.WriteLine(str+"不存在"); 
}

 

範例下載:字典類別Hashtable.rar

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


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

Image result for microsoft+mvp+logo