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. В програмата по-долу ще напишем кода, за да видим как можем да използваме гореспоменатите методи.

Засега в нашия пример просто ще разгледаме как можем да създадем хеш-таблица, да добавим елементи към хеш-таблицата и да ги покажем съответно.

Хеш таблица в 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#

Нека разгледаме още някои налични методи за хеш таблици.

Съдържа ключ

Този метод се използва, за да се види дали има ключ в Hashtable. По-долу е общият синтаксис на този израз. Изявлението ще върне 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#

От изхода можете ясно да видите, че и ключът, и стойността, които се търсят, присъстват в хеш-таблицата.

Oбобщение

Hashtable се използва за съхраняване на елементи, които се състоят от двойки ключови стойности. За да получите достъп до стойността на елемент, трябва да знаете ключа на елемента.

Обобщете тази публикация с: