Jadual cincang ialah koleksi dalam C# yang mengandungi item yang dikenal pasti sebagai pasangan nilai kunci. Jadi tidak seperti struktur data lain seperti tindanan, baris gilir atau ArrayList dalam C# yang menyimpan satu nilai, jadual cincang dalam C# menyimpan 2 nilai. Kedua-dua nilai ini, pasangan nilai kunci, membentuk elemen jadual cincang.
Dalam jadual cincang, kunci adalah unik dan tidak boleh batal. Nilai dalam jadual cincang boleh menjadi batal dan diulang.
Dalam C#, antara muka System.collections menyediakan kelas yang dipanggil "Hashtable" untuk mewakili koleksi jadual cincang. Kelas ini menyediakan pelbagai pembina untuk mencipta objek jadual cincang, dan juga menyediakan kaedah dan sifat untuk melaksanakan pelbagai operasi pada objek jadual cincang.
Dalam artikel ini, kita akan belajar cara mendapatkan kunci dalam koleksi jadual cincang berdasarkan nilainya.
Kelas Hashtable tidak mempunyai kaedah langsung untuk mendapatkan kunci berdasarkan nilai dalam jadual hash. Oleh itu, kita perlu menulis program untuk mencincang koleksi jadual untuk mendapatkan kunci yang diberi nilai.
Jom bincang kaedah mendapatkan kunci berdasarkan nilai. Untuk melakukan ini, kami melintasi keseluruhan jadual cincang berdasarkan kekunci jadual cincang. Kami kemudian memadankan setiap nilai dengan nilai yang ditentukan, dan jika nilai sepadan, kami mengembalikan kunci yang sepadan.
Untuk melintasi jadual cincang, kita boleh menggunakan gelung foreach berikut.
foreach (string key in langCodes.Keys) { if (langCodes[key].ToString() == value) { retKey = key; } }
Interator yang kami gunakan dalam gelung foreach untuk melintasi jadual cincang ialah koleksi kunci (langCodes.Keys). Nilai yang sepadan untuk setiap kunci kemudiannya dibandingkan dengan nilai yang ditentukan, dan jika terdapat padanan, kunci khusus itu dikembalikan.
Program di bawah menunjukkan pelaksanaan ini.
using System; using System.Collections; class Program { public static void Main(){ // Create a Hashtable Hashtable langCodes = new Hashtable(); // Add elements to the Hashtable langCodes.Add("C++", "CPlusPlus"); langCodes.Add("C#", "CSharp"); langCodes.Add("Java", "Java"); langCodes.Add("PL", "Perl"); string value = "CSharp"; string retKey=""; foreach (string key in langCodes.Keys){ if (langCodes[key].ToString() == value){ retKey = key; } } if(retKey != ""){ Console.WriteLine("Key for the value = {0} is {1}", value,retKey); } else { Console.WriteLine("Key for the value = {0} is not present in the Hashtable", value); } } }
Di sini, kami mempunyai jadual cincang yang dipanggil "langCodes" yang terdiri daripada kod bahasa pengaturcaraan dan nilainya yang sepadan. Isytiharkan pembolehubah rentetan yang mengandungi nilai yang ditentukan. Kemudian gunakan konstruk foreach untuk melelaran melalui keseluruhan jadual cincang dan semak kekunci yang sama dengan nilai yang ditentukan. Apabila kunci sedemikian ditemui, nilai kunci dikembalikan dalam pembolehubah retKey.
Jika terdapat nilai dalam pembolehubah retKey, kami mengeluarkan nilai sebagai kunci nilai yang ditentukan. Jika retKey kosong, anda boleh membuat kesimpulan
Key for the value = CSharp is C#
Sekarang katakan kita ingin mendapatkan kunci dengan nilai "JavaScript".
string value = "JavaScript";
Dengan perubahan ini, kami melaksanakan program di atas dan ia akan menjana output berikut.
Key for the value = JavaScript is not present in the Hashtable
Kini, memandangkan tiada unsur yang sepadan dengan bahasa JavaScript dalam jadual cincang, atur cara memaparkan mesej di atas.
Mari kita ambil contoh untuk memudahkan topik ini.
Atur cara berikut mendapat kunci dalam jadual cincang yang diberi nilai tertentu.
using System; using System.Collections; class Program { public static void Main() { // Create a Hashtable Hashtable myHashTable = new Hashtable(); // Add elements to the Hashtable myHashTable.Add("First", "Hello"); myHashTable.Add("Second", "World"); myHashTable.Add("Third", ""); myHashTable.Add("Fourth", "!"); string value = ""; string retKey=""; foreach (string key in myHashTable.Keys) { if (myHashTable[key].ToString() == value) { retKey = key; } } if(retKey != ""){ Console.WriteLine("Key for the value = {0} is {1}", value,retKey); } else { Console.WriteLine("Key for the value = {0} is not present in the Hashtable", value); } } }
Dalam program ini, kami mempunyai jadual hash "myHashTable" yang menyimpan petikan terkenal "Hello World!". Tetapi kami tidak menyimpan kata-kata ini secara bersebelahan. Sebaliknya, kami memperkenalkan nilai nol selepas perkataan "Dunia".
Program ini direka untuk mendapatkan kunci dengan nilai nol. Output yang dihasilkan ditunjukkan di bawah.
Key for the value = is Third
Di sini, memandangkan jadual cincang membenarkan nilai nol, apabila kami menentukan nilai nol, kunci nilai nol yang sepadan akan diambil semula.
Sekarang mari kita tukar nilai yang kita ingin dapatkan kuncinya. Seterusnya kita menukar nilai kepada '!' dan melaksanakan program.
string value = "!";
Key for the value = ! is Fourth
Elemen ketiga dalam jadual cincang ialah nilai nol, jadi bahagian terakhir petikan ialah kedudukan keempat dalam jadual cincang.
Dengan cara ini kita boleh memprogram jadual cincang untuk mendapatkan kunci yang diberi nilai khusus dalam jadual cincang. Seperti yang telah kita lihat, memandangkan jadual hash membenarkan nilai nol, kita juga boleh menghantar nilai nol dan mendapatkan kunci yang sepadan.
Atas ialah kandungan terperinci Program C# untuk mendapatkan kunci berdasarkan nilai dalam koleksi Hashtable. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!