HashTable ialah koleksi bukan generik dalam C#. Ia menyimpan pasangan nilai kunci, serupa dengan koleksi "kamus" tujuan umum. HashTable ditakrifkan dalam
System. Collections. namespace.
HashTable mengira kod cincang untuk setiap kunci dan menyimpannya dalam baldi berbeza secara dalaman. Kemudian, apabila nilai itu diakses, kod cincang dipadankan dengan kod cincang kunci yang ditentukan. Oleh itu, carian dioptimumkan melalui HashTable.
Dalam tutorial ini, kita akan belajar cara mencipta koleksi HashTable dalam C#.
Sebelum kita mula mencipta HashTable, mari lihat beberapa ciri penting koleksi HashTable dalam C#.
Koleksi HashTable menyimpan pasangan nilai kunci.
Jadual cincang adalah sebahagian daripada sistem. Ruang nama koleksi dalam C# dan melaksanakan antara muka IDictionary. Unsur-unsur HashTable disimpan sebagai objek DictionaryEntry.
Kunci jadual cincang tidak boleh kosong dan mestilah unik. Walau bagaimanapun, nilai boleh kosong atau pendua.
Nilai dalam jadual cincang boleh diakses menggunakan kekunci dalam pengindeks, sama seperti nilai tatasusunan.
Kunci dalam HashTable ialah objek tidak boleh diubah. Setiap objek utama ini menyediakan fungsi cincang.
Kelas Hashtable biasa melaksanakan antara muka IDictionary C#, ICollection, ISerializable, IEnumerable, IDeserializationCallback dan ICloneable.
Elemen yang disimpan dalam HashTable boleh daripada jenis yang sama atau jenis yang berbeza.
Mengingat ciri penting ini, mari kita bincangkan cara membuat jadual cincang dalam C#.
Kelas HashTable C# menyediakan 16 pembina terlebih beban untuk mencipta HashTable.
Jadual berikut menunjukkan pembina HashTable yang akan kami gunakan dalam artikel ini.
Pembina | Penerangan |
---|---|
HashTable() | Mulakan contoh kosong baharu kelas HashTable dengan kapasiti permulaan lalai, pembekal kod cincang, pembanding dan faktor beban. |
Meja cincang (IDictionary) | Mencipta contoh baharu kelas Hashtable dan memulakannya dengan kandungan kamus yang ditentukan. |
NOTA- Untuk mengetahui lebih lanjut tentang kelas HashTable dalam C#, baca artikel kami C# - kelas HashTable.
Mari lihat langkah yang biasanya diikuti untuk mencipta koleksi HashTable dalam C#.
Pertama, kami memasukkan ruang nama System.collection dalam program kami
using System. Collections;
Seterusnya, kami mencipta jadual hash menggunakan kelas Hashtable. Untuk ini kami menggunakan pembina lalai.
Hashtable hashtable_name = new Hashtable();
Kini kita boleh menambah elemen pada HashTable menggunakan kaedah "Add()".
Jadi di sini, kita boleh memulakan keseluruhan HashTable semasa mencipta contoh HashTable, atau kita boleh menggunakan kaedah Add() untuk menambah elemen pada HashTable satu demi satu.
Atur cara berikut menunjukkan mencipta HashTable menggunakan C#.
using System; using System. Collections; class MyHashTable { // Main Method static public void Main() { // Create hashtable using the default constructor Hashtable indianNumberSystem = new Hashtable(); //add a key/value pair using the Add() method indianNumberSystem.Add(1,"Ones"); indianNumberSystem.Add(10,"Tens"); indianNumberSystem.Add(100,"Hundred"); indianNumberSystem.Add(1000,"Thousand"); indianNumberSystem.Add(10000,"Ten Thousand"); indianNumberSystem.Add(100000,"Lac"); indianNumberSystem.Add(1000000,"Ten Lac"); indianNumberSystem.Add(10000000,"Crore"); //display HashTable contents Console.WriteLine("Key, Value pairs from Indian Number System:"); foreach(DictionaryEntry ele1 in indianNumberSystem){ Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value); } } }
Dalam program di atas, kami menentukan contoh HashTable menggunakan pembina lalai. Kemudian kami menambah pasangan kunci/nilai pada HashTable menggunakan kaedah Add(). Akhir sekali, gunakan gelung untuk setiap untuk mencetak kandungan HashTable satu demi satu.
Program di atas menjana output berikut.
Key, Value pairs from Indian Number System: 100 (Hundred) 1000 (Thousand) 10 (Tens) 1000000 (Ten Lac) 100000 (Lac) 10000000 (Crore) 10000 (Ten Thousand) 1 (Ones)
Program ini memaparkan jadual cincang yang mengandungi nilai tempat sistem angka India. Ambil perhatian bahawa kerana ini ialah program mudah yang mencipta jadual cincang dan menambah kandungan padanya, output tidak diformatkan.
Mari kita ambil satu lagi contoh mencipta HashTable dalam C#. Program berikut menggunakan pembina yang berbeza untuk mencipta HashTable.
using System; using System.Collections; class MyHashTable { // Main Method static public void Main() { // Create hashtable without using Add method Hashtable my_hashtable1 = new Hashtable() {{"K1", "New York"}}; // Adding key/value pair in the hashtable using Add() method my_hashtable1.Add("K2", "Paris"); my_hashtable1.Add("K3", "London"); my_hashtable1.Add("K4", "Mumbai"); my_hashtable1.Add("K5", "Berlin"); Console.WriteLine("Key, Value pairs from my_hashtable1:"); foreach(DictionaryEntry ele1 in my_hashtable1){ Console.WriteLine("{0} and {1} ", ele1.Key, ele1.Value); } } }
Seperti yang kita lihat dalam kod di atas, mula-mula kita mencipta objek HashTable dengan pasangan nilai kunci. Kemudian kami menambah elemen pada HashTable menggunakan kaedah add() kelas HashTable. Akhir sekali, dengan menggunakan gelung untuk setiap, lelaran pada objek HashTable untuk mencetak setiap elemen hashTable (pasangan nilai-kunci).
Program di atas menghasilkan output berikut.
Key, Value pairs from my_hashtable1: K2 and Paris K1 and New York K3 and London K4 and Mumbai K5 and Berlin
Dalam output di atas, pasangan nilai kunci dipaparkan dalam susunan nilai abjad terbalik. Ini ialah output lalai jadual cincang kerana kami tidak menyediakan sebarang kod untuk memformat output. Kelas HashTable menyediakan pelbagai kaedah untuk mengatur/memformat output, yang akan kita pelajari dalam tutorial seterusnya.
Dalam tutorial ini, kami membincangkan cara membuat koleksi HashTable dalam C#. HashTable ialah koleksi bukan generik pasangan nilai kunci. Kekunci dalam HashTable ialah nilai bukan nol yang unik. Nilai boleh kosong dan berulang. Kita boleh mencipta HashTable dalam C# menggunakan kelas HashTable yang disediakan oleh Systems. Antara muka koleksi dan ubah suai menggunakan pelbagai kaedah yang disediakan oleh kelas ini.
Atas ialah kandungan terperinci Bagaimana untuk membuat koleksi HashTable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!