Хеш-таблиця 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. У наведеній нижче програмі ми напишемо код, щоб побачити, як ми можемо використовувати вищезгадані методи.

Наразі в нашому прикладі ми просто розглянемо, як ми можемо створити хеш-таблицю, додати елементи до хеш-таблиці та відобразити їх відповідно.

Хеш-таблиця в C#

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();
   }
 }
}

Пояснення коду: -

  1. Спочатку ми оголошуємо змінну hashtable за допомогою типу даних Hashtable за допомогою ключового слова «New». Ім'я визначеної змінної - "ht".
  2. Потім ми додаємо елементи до хеш-таблиці за допомогою методу Add. Пам’ятайте, що нам потрібно додати як ключ, так і елемент значення, додаючи щось до хеш-таблиці.
  3. Не існує прямого способу відображення елементів хеш-таблиці.
  • Щоб відобразити хеш-таблицю, нам спочатку потрібно отримати список ключів (001, 002 і 003) з хеш-таблиці.
  • Це робиться через інтерфейс ICollection. Це спеціальний тип даних, який можна використовувати для зберігання ключів колекцій хеш-таблиць. Потім ми призначаємо ключі колекції хеш-таблиць змінній 'keys'.
  1. Далі для кожного значення ключа ми отримуємо відповідне значення в хеш-таблиці за допомогою оператора ht[k].

Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний результат.

вихід:

Хеш-таблиця в C#

Давайте розглянемо ще деякі методи, доступні для хеш-таблиць.

Містить ключ

Цей метод використовується для перевірки наявності ключа в хеш-таблиці. Нижче наведено загальний синтаксис цього оператора. Оператор поверне значення true, якщо ключ існує, інакше він поверне значення false.

Hashtable.Containskey(key)

Містить значення

Цей метод використовується для перевірки наявності значення в хеш-таблиці. Нижче наведено загальний синтаксис цього оператора. Оператор поверне значення true, якщо значення існує, інакше поверне значення false.

Hashtable.ContainsValue(value)

Приклад 2:

Давайте змінимо код у нашому Консольний додаток щоб продемонструвати, як ми можемо використовувати метод «Containskey» і «ContainsValue».

Хеш-таблиця в C#

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();
   }
 }
}

Пояснення коду: -

  1. Спочатку ми використовуємо метод ContainsKey, щоб перевірити, чи присутній ключ у хеш-таблиці. Цей метод поверне значення true, якщо ключ присутній у хеш-таблиці. Цей метод має повертати true, оскільки ключ існує в хеш-таблиці.
  2. Потім ми використовуємо метод ContainsValue, щоб перевірити, чи присутнє значення в хеш-таблиці. Цей метод поверне «true», оскільки значення дійсно існує в хеш-таблиці.

Якщо наведений вище код введено належним чином і програма запущена, буде показано наступний результат.

вихід:

Хеш-таблиця в C#

З результату ви можете чітко побачити, що і ключ, і значення, які шукаються, присутні в хеш-таблиці.

Підсумки

Хеш-таблиця використовується для зберігання елементів, які складаються з пар ключів-значень. Щоб отримати доступ до значення елемента, вам потрібно знати ключ елемента.