Jadual cincang ialah koleksi bukan −generik dalam C#. Ia menyimpan pasangan nilai kunci −, serupa dengan koleksi "kamus" generik. HashTable ditakrifkan dalam System.Collections.namespace.
HashTable terdiri daripada pasangan kunci/nilai di mana setiap kunci dikira sebagai kod cincang dan disimpan secara dalaman dalam baldi yang berbeza. Apabila HashTable diakses, kod cincang dipadankan dengan kod cincang untuk kunci yang ditentukan, dengan itu mengakses nilai yang sepadan. Mekanisme ini mengoptimumkan carian dalam jadual cincang.
Sekarang mari kita bincangkan cara mendapatkan kunci daripada HashTable dalam C#.
Kita boleh menggunakan dua kaedah untuk mendapatkan kunci daripada jadual cincang.
Gunakan untuk−setiap gelung dan akses kekunci
Dapatkan set kunci daripada jadual cincang dan paparkan satu persatu.
Mari kita tunjukkan kedua-dua kaedah menggunakan contoh.
Dalam kaedah ini, kami mengisytiharkan jadual cincang dengan pasangan kunci/nilai. Kemudian menggunakan gelung untuk-setiap kami memaparkan kekunci dalam jadual cincang.
Untuk mencapai ini secara terprogram, kami akan menggunakan jadual cincang berikut.
{“US", "New York"} {"FR", "Paris"} {"UK", "London"} {"IN", "Mumbai"} {"GER", "Berlin"}
Jadual cincang di atas mempunyai kod negara sebagai kunci dan nilai sebagai bandar penting yang sepadan.
Jika jadual cincang di atas dipanggil Citytable, maka kami mengakses kekuncinya menggunakan lelaran DictionaryEntry seperti yang ditunjukkan di bawah -
foreach(DictionaryEntry ele1 in Citytable){ Console.WriteLine("{0}", ele1.Key);
Kod ini akan memaparkan setiap kunci dalam jadual cincang.
Pelan kerja lengkap untuk kaedah ini adalah seperti berikut -
using System; using System.Collections; class MyHashTable { // Main Method static public void Main() { // Create a hashtable instance Hashtable Citytable = new Hashtable(); // Adding key/value pair in the hashtable using Add() method Citytable.Add("US", "New York"); Citytable.Add("FR", "Paris"); Citytable.Add("UK", "London"); Citytable.Add("IN", "Mumbai"); Citytable.Add("GER", "Berlin"); //Print hashtable keys Console.WriteLine("Citytable Keys:"); foreach(DictionaryEntry ele1 in Citytable){ Console.WriteLine("{0}", ele1.Key); } } }
Dalam program ini, kami mengisytiharkan dan mentakrifkan jadual cincang yang dipanggil Citytable, yang masing-masing mengandungi kod negara dan bandar pentingnya sebagai pasangan kunci/nilai. Selepas mengisi jadual cincang dengan nilai menggunakan kaedah Add(), kami memulakan gelung untuk setiap yang melelaran Citytable menggunakan lelaran "ele1" jenis DictionaryEntry. Kemudian untuk setiap lelaran, nilai kunci dicetak.
Citytable Keys: FR US IN GER UK
Seperti yang kita lihat, hanya kekunci Citytable ditunjukkan dalam output. Ini ialah kaedah yang paling biasa kerana kami terutamanya menggunakan untuk setiap gelung untuk memaparkan kandungan mana-mana koleksi atau tatasusunan.
Kita boleh mengubah suai sedikit program di atas supaya ia memaparkan nilai yang sepadan dengan kunci yang diberikan.
Untuk melakukan ini, kita perlu membuat perubahan berikut dalam gelung lelaran.
foreach(DictionaryEntry ele1 in Citytable){ Console.WriteLine("{0} = {1}", ele1.Key, ele1.Value);
Dalam kod di atas, kami kini turut mencetak bahagian nilai pembilang lelaran.
Prosedur lengkap untuk pengubahsuaian ini adalah seperti berikut -
using System; using System.Collections; class MyHashTable { // Main Method static public void Main() { // Create a hashtable instance Hashtable Citytable = new Hashtable(); // Adding key/value pair in the hashtable using Add() method Citytable.Add("US", "New York"); Citytable.Add("FR", "Paris"); Citytable.Add("UK", "London"); Citytable.Add("IN", "Mumbai"); Citytable.Add("GER", "Berlin"); //Print hashtable keys Console.WriteLine("Citytable Keys:"); foreach(DictionaryEntry ele1 in Citytable){ Console.WriteLine("{0} = {1}", ele1.Key, ele1.Value); } } }
Citytable Keys: FR = Paris US = New York IN = Mumbai GER = Berlin UK = London
Jadi, di sini kami tunjukkan pasangan kunci/nilai Citytable.
Mari beralih kepada kaedah seterusnya.
Dalam kaedah ini, kami mula-mula mendapatkan koleksi kunci daripada Hashtable menggunakan koleksi dan kemudian mencetak kunci ini. Kekunci dicetak sebagai nilai rentetan, yang tidak lebih daripada elemen koleksi.
Mari kita ambil contoh jadual cincang dalam bahasa pengaturcaraan.
{"CPP", "C++"} {"CS", "C#"} {"JAVA", "JAVA"} {"PL", "PERL"} {"JS", "JAVASCRIPT"}
Kami mentakrifkan jadual di atas sebagai jadual cincang, Langtable dalam program. Kami kemudian mengisytiharkan "kunci" objek ICollection dan mengumpul kekunci jadual cincang dalam objek itu.
ICollection keys = Langtable.Keys;
Setelah kami mempunyai koleksi kunci, kami boleh dengan mudah mengulang koleksi dan memaparkan setiap kunci sebagai rentetan.
foreach (String k in keys){ Console.WriteLine(k); }
Dengan cara ini kita boleh memaparkan setiap kunci dalam jadual cincang secara individu.
Prosedur lengkap untuk kaedah ini diberikan di sini.
using System; using System.Collections; class MyHashTable { // Main Method static public void Main() { // Create a hashtable instance Hashtable Langtable = new Hashtable(); // Adding key/value pair in the hashtable using Add() method Langtable.Add("CPP", "C++"); Langtable.Add("CS", "C#"); Langtable.Add("JAVA", "JAVA"); Langtable.Add("PL", "PERL"); Langtable.Add("JS", "JAVASCRIPT"); //Collection of Hashtable keys ICollection keys = Langtable.Keys; Console.WriteLine("Language Keys:"); foreach (String k in keys){ Console.WriteLine(k); } Console.ReadKey(); } }
Seperti yang telah dibincangkan, program di atas mengandungi jadual cincang bahasa pengaturcaraan, dengan kod bahasa sebagai kunci dan namanya sebagai nilai. Kami mula-mula menggunakan objek ICollection untuk mendapatkan semula koleksi kunci daripada jadual cincang. Kemudian kami mengulangi objek ini dan memaparkan kunci satu demi satu.
Language Keys: PL JS CS JAVA CPP
Jadi program memaparkan kod bahasa (kunci) jadual cincang. Begitu juga, jika kita mahu nilai yang sepadan dengan setiap kunci, kita boleh mencetaknya dengan mengakses jadual cincang dengan kunci yang diberikan. Kami menyerahkan pengubahsuaian ini kepada pembaca.
Oleh itu, kita boleh mendapatkan (access) kunci jadual cincang daripada jadual cincang menggunakan mana-mana dua kaedah yang dibincangkan di atas. Walaupun kedua-dua kaedah adalah mudah, kami terutamanya menggunakan kaedah pertama, yang menggunakan gelung untuk setiap untuk mengulang jadual cincang untuk kebanyakan koleksi.
Dalam artikel seterusnya, kami akan membincangkan lebih banyak operasi Hashtable yang boleh dilakukan dalam C#.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai kunci daripada HashTable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!