C# Hashtable с примери
Какво е 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. Това е специален тип данни, който може да се използва за съхраняване на ключовете на колекции от хеш-таблици. След това присвояваме ключовете на колекцията от хеш-таблици на променливата 'keys'.
- След това за всяка ключова стойност получаваме свързаната стойност в хеш-таблицата, като използваме оператора ht[k].
Ако горният код е въведен правилно и програмата се изпълнява, ще се покаже следният изход.
Изход:
Нека разгледаме още някои налични методи за хеш таблици.
Съдържа ключ
Този метод се използва, за да се види дали има ключ в Hashtable. По-долу е общият синтаксис на този израз. Изявлението ще върне true, ако ключът съществува, в противен случай ще върне стойността false.
Hashtable.Containskey(key)
Съдържа Стойност
Този метод се използва, за да се види дали дадена стойност присъства в хеш-таблицата. По-долу е общият синтаксис на този израз. Изявлението ще върне true, ако стойността съществува, в противен случай ще върне стойността false.
Hashtable.ContainsValue(value)
Пример 2:
Нека променим кода в нашия Конзолно приложение за да покажем как можем да използваме метода „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, ако ключът присъства в хеш-таблицата. Този метод трябва да върне true, тъй като ключът съществува в хеш-таблицата.
- След това използваме метода ContainsValue, за да видим дали стойността присъства в хеш-таблицата. Този метод ще върне „true“, тъй като стойността съществува в хеш-таблицата.
Ако горният код е въведен правилно и програмата се изпълнява, ще се покаже следният изход.
Изход:
От изхода можете ясно да видите, че и ключът, и стойността, които се търсят, присъстват в хеш-таблицата.
Oбобщение
Hashtable се използва за съхраняване на елементи, които се състоят от двойки ключови стойности. За да получите достъп до стойността на елемент, трябва да знаете ключа на елемента.




