Hashtable 在集合中稱為鍵值對,它的每一個元素的類型是 DictionaryEntry,由於Hashtable對象的鍵和值都是Object類型,決定了它可以放任何類型的數據,
下面我就把Hashtable對象中放置定義的一個類的幾個對象。
創建的類如下:
class Person { private int age; public int Age { get { return age; } set { age = value; } } private string name; public string Name { get { return name; } set { name = value; } } private string email; public string Email { get { return email; } set { email = value; } } }
Hashtable的幾種遍歷方法如下:
代碼 static void Main(string[] args) { Person person1 = new Person(); person1.Age = 34; person1.Name = "Jacky"; person1.Email = "Jacky@gmail.com"; Person person2 = new Person(); person2.Age = 23; person2.Name = "Ajay"; person2.Email = "Ajay@gmail.com"; Person person3 = new Person(); person3.Age = 12; person3.Name = "Bill"; person3.Email = "Bill@gmail.com"; Person person4 = new Person(); person4.Age = 23; person4.Name = "Gace"; person4.Email = "Gace@gmail.com"; Person person5 = new Person(); person5.Age = 45; person5.Name = "Jim"; person5.Email = "Jim@gmail.com"; Hashtable ht = new Hashtable(); ht.Add("1", person1); ht.Add("2", person2); ht.Add("3", person3); ht.Add("4", person4); ht.Add("5", person5); Console.WriteLine("請輸入你的查詢的用戶名:"); string strName = Console.ReadLine(); //第一種方法 foreach (string item in ht.Keys) { Person p = (Person)ht[item]; if (strName == p.Name) { Console.WriteLine("查詢后的結果是:" + p.Name + "\t" + p.Email + "\t" + p.Age); } } //第二種方法 foreach (Person item in ht.Values) { if (item.Name == strName) { Console.WriteLine("查詢后的結果是:" + item.Name + "\t" + item.Email + "\t" + item.Age); } } //第三種方法 foreach (DictionaryEntry item in ht) { if (strName == ((Person)item.Value).Name) { Console.WriteLine("查詢后的結果是:" + ((Person)item.Value).Name + "\t" + ((Person)item.Value).Email + "\t" + ((Person)item.Value).Age); } } //第四種方法 IDictionaryEnumerator id = ht.GetEnumerator(); while (id.MoveNext()) { Person p = (Person)ht[id.Key]; if (p.Name == strName) { Console.WriteLine("查詢后的結果是:" + p.Name + "\t" + p.Email + "\t" + p.Age); } } }