輕松進修C#的哈希表。本站提示廣大學習愛好者:(輕松進修C#的哈希表)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松進修C#的哈希表正文
在C#說話中,還有一種用於疾速搜刮而組織的鍵/值組合的數組,這類數組叫做聯系關系數組,也叫做哈希表(Hashtable)。
哈希表也在System.Collection定名空間下,用於處置和表示相似key/value的鍵值對,個中key平日用來疾速查找,同時key是辨別年夜小寫,且key必需是獨一的。它沒有有用的排序,所停止的是內涵的排序,value用於存儲對應於key的值。哈希表中key/value鍵值對均為object類型,所以哈希表可以支撐任何類型的key/value鍵值對。哈希表的每一個元素是一個存儲在DictionaryEntry對象中的鍵值對鍵值對(所謂的DictionaryEntry構造,就是界說可設置或檢索的字典鍵值對,有一個key屬性,一個value屬性,分離代表鍵和值)。
哈希表最年夜的長處就是把數據的存儲和查找消費的時光年夜年夜下降,簡直可以算作常數時光,而價值僅僅是消費較多的內存。但是在以後可應用內存愈來愈多的情形下,用空間換時光的做法是值得的。別的,編碼比擬輕易也是它的特色之一。
1、Hashtable元素的添加
Hashtable供給了一個添加元素的key/value鍵值對Add辦法,該辦法有兩個參數,一個是鍵,功效相當於數組中的索引,贊助查找,另外一個是值,可以把它看作數組中的元素,其格局為:Hashtable對象.Add(鍵,值)
例1、應用上述的辦法停止Hashtable對象的元素的添加
<span >using System; using System.Collections;//須要添加的定名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 哈希表 { class Program { static void Main(string[] args) { Hashtable al = new Hashtable(); Console.WriteLine("添加前al的元素個數為:"+al.Count); al.Add("1", "a"); al.Add("2", "b"); al.Add("3", "c"); Console.WriteLine("添加後al的元素個數為:"+al.Count); Console.ReadLine(); } } }</span>
輸入的成果為:添加前al的元素個數為:0
添加後al的元素個數為:3
2、Hashtable元素的刪除
Hashtable對象的元素的刪除可經由過程Remove辦法,Clear辦法來停止。
(1).Clear辦法將消除一切的元素,其格局為:Hashtable對象.Clear()
(2).Remove辦法接收一個key參數,感化是移除一個key/value鍵值對,其格局為:Hashtable對象.Remove()
例2、應用上述辦法停止Hashtable元素的刪除
<span >using System; using System.Collections;//須要添加的定名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 哈希表 { class Program { static void Main(string[] args) { Hashtable al = new Hashtable(); Console.WriteLine("添加前al的元素個數為:"+al.Count); al.Add("1", "a"); al.Add("2", "b"); al.Add("3", "c"); Console.WriteLine("添加後al的元素個數為:"+al.Count); al.Remove("3"); Console.WriteLine("刪除3後al的元素個數為:"+al.Count); Console.ReadLine(); } } }</span>
輸入的成果為:添加前al的元素個數為:0
添加後al的元素個數為:3
刪除C後al的元素個數為:2
3、Hashtable元素的遍歷
遍歷哈希表須要用到DictionaryEntry(字典鍵/值對)Object。
例3、應用foreach語句對哈希表停止遍歷
<span >using System; using System.Collections;//須要添加的定名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 哈希表 { class Program { static void Main(string[] args) { Hashtable al = new Hashtable(); Console.WriteLine("添加前al的元素個數為:"+al.Count); al.Add("1", "a"); al.Add("2", "b"); al.Add("3", "c"); Console.WriteLine("添加後al的元素個數為:"+al.Count); foreach (DictionaryEntry t in al) { Console.Write("鍵位:"+t.Key+" 值為:"); Console.WriteLine(t.Value); } Console.ReadLine(); } } }</span>
輸入的成果為:添加前al的元素個數為:0
添加後al的元素個數為:3
鍵位:1 值為:a
鍵位:2 值為:b
鍵位:3 值為:c
4、Hashtable元素的查找
Hashtable聚集供給三個查找辦法查找Hashtable中的元素,這三個辦法為Contains辦法,ContainsKe和辦法和ContainsValue辦法。
Contains辦法,ContainsKey辦法是依據Hashtable的key值去查找,假如找到,前往婚配的最初一項的自0開端的索引,不然前往-1,其格局為:
Hashtable對象.Contains(key值)或 Hashtable對象.ContainsKey(key值)
ContainValue辦法是依據Hashtable的value值去查找,假如找到,前往婚配的最初一項自0開端的索引,不然,前往-1,其格局為:Hashtable對象.ContainsValue(Value值)
例4、應用上述的辦法停止Hashtable元素的查找
<span >using System; using System.Collections;//須要添加的定名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 哈希表 { class Program { static void Main(string[] args) { Hashtable al = new Hashtable(); Console.WriteLine("添加前al的元素個數為:"+al.Count); al.Add("1", "a"); al.Add("2", "b"); al.Add("3", "c"); Console.WriteLine("添加後al的元素個數為:"+al.Count); if (al.Contains("1")) { Console.WriteLine("1存在al中"); } if (al.ContainsKey("2")) { Console.WriteLine("2存在al中"); } if (al.ContainsValue("c")) { Console.WriteLine("c存在al中"); } Console.ReadLine(); } } }</span>
輸入的成果為:添加前al的元素個數為:0
添加後al的元素個數為:3
1存在al中
2存在al中
c存在al中
以上就是關於C#的哈希表相干引見,願望對年夜家的進修有所贊助