Co to jest Hashtable w C #?
Tabela skrótów to specjalna kolekcja używana do przechowywania elementów klucz-wartość. Dlatego zamiast przechowywać tylko jedną wartość, taką jak stos, lista tablic i kolejka, tabela haszująca przechowuje 2 wartości. Te 2 wartości tworzą element tablicy skrótów.
Poniżej znajduje się przykład tego, jak mogą wyglądać wartości tabeli skrótów.
{ "001" , ".Net" }{ "002" , ".C#" }{ "003" , "ASP.Net" }
Powyżej mamy 3 pary klucz-wartość. Klucze każdego elementu to odpowiednio 001, 002 i 003. Wartości każdej pary klucz-wartość to odpowiednio „.Net”, „C #” i „ASP.Net”.
Przyjrzyjmy się bardziej szczegółowo operacjom dostępnym dla kolekcji Hashtable.
Deklaracja tablicy z haszowaniem
Deklaracja tablicy z haszowaniem jest pokazana poniżej. Hashtable jest tworzony za pomocą typu danych Hashtable. Słowo kluczowe „new” służy do tworzenia obiektu tablicy z haszowaniem. Obiekt jest następnie przypisywany do zmiennej ht.
Hashtable ht = new Hashtable()
Dodawanie elementów do tablicy z haszowaniem
Metoda Add służy do dodawania elementu do kolejki. Ogólna składnia instrukcji jest podana poniżej
HashTable.add("key","value")
Przykład 1:
Pamiętaj, że każdy element tablicy skrótów składa się z 2 wartości, jedna to klucz, a druga to wartość.
Zobaczmy teraz, jak to działa na poziomie kodu. Cały poniższy kod zostanie zapisany w naszej aplikacji konsolowej.
Kod zostanie zapisany w naszym pliku Program.cs. W poniższym programie napiszemy kod, aby zobaczyć, jak możemy wykorzystać wyżej wymienione metody.
Na razie w naszym przykładzie przyjrzymy się tylko, jak możemy utworzyć tablicę haszy, dodać elementy do tablicy hashy i odpowiednio je wyświetlić.
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();}}}
Objaśnienie kodu: -
- Najpierw deklarujemy zmienną hashtable przy użyciu typu danych Hashtable, używając słowa kluczowego „New”. Nazwa definiowanej zmiennej to „ht”.
- Następnie dodajemy elementy do tablicy skrótów za pomocą metody Add. Pamiętaj, że podczas dodawania czegoś do tablicy hashy musimy dodać zarówno klucz, jak i element wartości.
- Nie ma bezpośredniego sposobu wyświetlania elementów tablicy skrótów.
- Aby wyświetlić tablicę haszującą, musimy najpierw pobrać listę kluczy (001, 002 i 003) z tablicy hash.
- Odbywa się to za pośrednictwem interfejsu ICollection. Jest to specjalny typ danych, który może być używany do przechowywania kluczy kolekcji z możliwością haszowania. Następnie przypisujemy klucze z kolekcji tablicy hashy do zmiennej „keys”.
- Następnie dla każdej wartości klucza pobieramy powiązaną wartość w tablicy hashy za pomocą instrukcji ht [k].
Jeśli powyższy kod zostanie wpisany poprawnie i program zostanie uruchomiony, wyświetlone zostanie następujące wyjście.
Wynik:
Spójrzmy na więcej metod dostępnych dla tabel skrótów.
ContainsKey
Ta metoda służy do sprawdzania, czy klucz jest obecny w tablicy z haszowaniem. Poniżej znajduje się ogólna składnia tego stwierdzenia. Instrukcja zwróci wartość true, jeśli klucz istnieje, w przeciwnym razie zwróci wartość false.
Hashtable.Containskey(key)
ContainsValue
Ta metoda służy do sprawdzania, czy wartość jest obecna w tablicy z haszowaniem. Poniżej znajduje się ogólna składnia tego stwierdzenia. Instrukcja zwróci prawdę, jeśli wartość istnieje, w przeciwnym razie zwróci wartość fałsz.
Hashtable.ContainsValue(value)
Przykład 2:
Zmieńmy kod w naszej aplikacji konsolowej, aby pokazać, jak możemy użyć metody „Containskey” i „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();}}}
Objaśnienie kodu: -
- Najpierw używamy metody ContainsKey, aby sprawdzić, czy klucz jest obecny w tablicy hashy. Ta metoda zwróci wartość true, jeśli klucz jest obecny w tablicy hashy. Ta metoda powinna zwrócić wartość true, ponieważ klucz istnieje w tablicy hashy.
- Następnie używamy metody ContainsValue, aby sprawdzić, czy wartość jest obecna w tablicy hashy. Ta metoda zwróci wartość „true”, ponieważ wartość istnieje w tablicy hashy.
Jeśli powyższy kod zostanie wpisany poprawnie i program zostanie uruchomiony, wyświetlone zostanie następujące wyjście.
Wynik:
Na podstawie danych wyjściowych można wyraźnie zobaczyć, że zarówno klucz, jak i szukana wartość znajdują się w tabeli skrótów.
Podsumowanie
- Hashtable służy do przechowywania elementów składających się z par klucz-wartość. Aby uzyskać dostęp do wartości elementu, musisz znać klucz elementu.