Какво е Hashtable в C #?
Хеш таблицата е специална колекция, която се използва за съхраняване на елементи ключ-стойност. Така че, вместо да съхранява само една стойност като стека, списъка с масиви и опашката, хеш таблицата съхранява 2 стойности. Тези 2 стойности формират елемент от хеш таблицата.
По-долу са дадени някои примери за това как могат да изглеждат стойностите на хеш таблица.
{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }
По-горе имаме 3 двойки ключови стойности. Ключовете на всеки елемент са съответно 001, 002 и 003. Стойностите на всяка двойка ключови стойности са съответно ".Net", "C #" и "ASP.Net".
Нека разгледаме по-подробно операциите, достъпни за колекцията Hashtable.
Декларация на Hashtable
Декларацията за Hashtable е показана по-долу. Hashtable се създава с помощта на Hashtable Datatype. Ключовата дума "new" се използва за създаване на обект на Hashtable. След това обектът се присвоява на променливата ht.
Hashtable ht = new Hashtable()
Добавяне на елементи към Hashtable
Методът Add се използва за добавяне на елемент към опашката. Общият синтаксис на изявлението е даден по-долу
HashTable.add("key","value")
Пример 1:
Не забравяйте, че всеки елемент от хеш таблицата се състои от 2 стойности, едната е ключът, а другата е стойността.
Сега нека видим как това работи на ниво код. Всички по-долу споменати кодове ще бъдат записани в нашето приложение за конзола.
Кодът ще бъде записан в нашия файл Program.cs. В програмата по-долу ще напишем кода, за да видим как можем да използваме гореспоменатите методи.
Засега в нашия пример просто ще разгледаме как можем да създадем хеш-таблица, да добавим елементи към хеш-таблицата и да ги покажем съответно.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");ICollection keys = ht.Keys;foreach (String k in keys){Console.WriteLine(ht[k]);}Console.ReadKey();}}}
Обяснение на кода: -
- Първо, декларираме променливата на hashtable, използвайки типа данни на Hashtable, като използваме ключовата дума "New". Името на дефинираната променлива е 'ht'.
- След това добавяме елементи към хеш таблицата, използвайки метода Add. Не забравяйте, че трябва да добавим и ключ, и елемент на стойност, когато добавяме нещо към хеш-таблицата.
- Няма директен начин за показване на елементите на хеш таблица.
- За да покажем хеш-таблицата, първо трябва да вземем списъка с ключове (001, 002 и 003) от хеш-таблицата.
- Това става чрез интерфейса ICollection. Това е специален тип данни, който може да се използва за съхраняване на ключовете на колекции с хеш. След това присвояваме ключовете на колекцията за хеширане на променливата „ключове“.
- След това за всяка ключова стойност получаваме свързаната стойност в хеш-таблицата, като използваме израза ht [k].
Ако горният код е въведен правилно и програмата се изпълни, ще се покаже следният изход.
Изход:
Нека разгледаме още няколко метода, налични за хеш таблици.
СъдържаКлюч
Този метод се използва, за да се види дали в Hashtable има ключ. По-долу е даден общият синтаксис на това твърдение. Операторът ще върне true, ако ключът съществува, в противен случай ще върне стойността false.
Hashtable.Containskey(key)
Съдържа стойност
Този метод се използва, за да се види дали в Hashtable има стойност. По-долу е даден общият синтаксис на това твърдение. Операторът ще върне true, ако Стойността съществува, в противен случай ще върне стойността false.
Hashtable.ContainsValue(value)
Пример 2:
Нека променим кода в нашето приложение Console, за да покажем как можем да използваме метода „Containskey“ и „ContainsValue“.
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Program{static void Main(string[] args){Hashtable ht = new Hashtable();ht.Add("001",".Net");ht.Add("002","C#");ht.Add("003","ASP.Net");Console.WriteLine(ht.ContainsKey("001"));Console.WriteLine(ht.ContainsValue("C#"));Console.ReadKey();}}}
Обяснение на кода: -
- Първо, използваме метода ContainsKey, за да видим дали ключът присъства в хеш-таблицата. Този метод ще върне вярно, ако ключът присъства в хеш-таблицата. Този метод трябва да върне true, тъй като ключът съществува в хеш-таблицата.
- След това използваме метода ContainsValue, за да видим дали стойността присъства в хеш-таблицата. Този метод ще върне „true“, тъй като Стойността съществува в хеш-таблицата.
Ако горният код е въведен правилно и програмата се изпълни, ще се покаже следният изход.
Изход:
От изхода можете ясно да видите, че както ключът, така и стойността, която се търси, присъстват в хеш таблицата.
Обобщение
- Hashtable се използва за съхраняване на елементи, които се състоят от двойки ключови стойности. За да получите достъп до стойността на елемент, трябва да знаете ключа на елемента.