Хеш-таблиця C# із прикладами
Що таке Hashtable у C#?
Хеш-таблиця — це спеціальна колекція, яка використовується для зберігання елементів типу "ключ-значення". Тож замість того, щоб зберігати лише одне значення, наприклад стек, список масивів і чергу, хеш-таблиця зберігає 2 значення. Ці 2 значення утворюють елемент хеш-таблиці.
Нижче наведено кілька прикладів того, як можуть виглядати значення хеш-таблиці.
{ "001" , ".Net" } { "002" , ".C#" } { "003" , "ASP.Net" }
Вище ми маємо 3 пари ключ-значення. Ключі кожного елемента 001, 002 і 003 відповідно. Значення кожної пари ключ-значення є «.Net“, “C#” та “ASP.Net” відповідно.
Давайте детальніше розглянемо операції, доступні для колекції Hashtable.
Оголошення хеш-таблиці
Оголошення хеш-таблиці показано нижче. Hashtable створюється за допомогою типу даних Hashtable. Ключове слово “new” використовується для створення об’єкта хеш-таблиці. Потім об’єкт присвоюється змінній ht.
Hashtable ht = new 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].
Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний результат.
вихід:
Давайте розглянемо ще деякі методи, доступні для хеш-таблиць.
Містить ключ
Цей метод використовується для перевірки наявності ключа в хеш-таблиці. Нижче наведено загальний синтаксис цього оператора. Оператор поверне значення 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», оскільки значення дійсно існує в хеш-таблиці.
Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний результат.
вихід:
З результату ви можете чітко побачити, що і ключ, і значення, які шукаються, присутні в хеш-таблиці.
Підсумки
Хеш-таблиця використовується для зберігання елементів, які складаються з пар ключів-значень. Щоб отримати доступ до значення елемента, вам потрібно знати ключ елемента.