Dalam C#, koleksi hashtable ialah koleksi elemen bukan generik. Setiap elemen jadual hash diwakili sebagai pasangan nilai kunci. Kekunci jadual hash adalah bukan nol dan unik. Nilai boleh diulang dan/atau kosong.
Kelas Hashtable untuk Sistem C#. Antara muka koleksi ialah perwakilan koleksi jadual hash. Kelas ini menyediakan pelbagai pembina, kaedah dan sifat untuk memanipulasi koleksi jadual hash.
Kami juga boleh menukar jadual cincang kepada koleksi lain, seperti tatasusunan, ArrayList, dsb., dan juga kepada perwakilan rentetan.
Dalam artikel ini, mari kita bincangkan cara menukar koleksi jadual cincang kepada rentetan.
Sila ambil perhatian bahawa untuk menukar item jadual cincang kepada rentetan, kelas jadual cincang tidak menyediakan kaedah langsung seperti Java. Terdapat juga tiada sifat terbina dalam untuk melakukan penukaran. Oleh itu, kita perlu mereka bentuk kaedah kita sendiri untuk melakukan penukaran.
Elemen jadual hash ditukar kepada perwakilan rentetan.Untuk melakukan ini, kita perlu mengulangi koleksi jadual cincang dan menyalin kunci dan nilai setiap item ke dalam rentetan. Kita boleh menggunakan pembatas untuk memisahkan setiap item nilai kunci dalam rentetan.
Untuk memprogramkan sebenarnya dalam C#, kami menggunakan IDictionaryEnumerator untuk mengulangi setiap item dalam jadual cincang. Enumerator memegang setiap item (kunci dan nilai) jadual cincang. Kami kemudiannya boleh menggunakan gelung untuk menyalin setiap kunci dan nilai ke dalam rentetan seperti yang ditunjukkan di bawah.
IDictionaryEnumerator enumerator = phonetics.GetEnumerator(); while (enumerator.MoveNext()) { text += enumerator.Key + ", "; text += enumerator.Value + ""; }
Seperti yang kita dapat lihat dalam kod di atas, selepas menyalin setiap pasangan nilai kunci ke rentetan, kami memasukkan pembatas "
" supaya setiap item dipisahkan.
Di bawah ialah program C# yang lengkap untuk menukar item jadual cincang kepada rentetan.
using System; using System.Collections; class myHashTable { public static void Main() { // Create a Hashtable named phonetics Hashtable phonetics = new Hashtable(); // Add key/value pairs in phonetics phonetics.Add("A", "Apple"); phonetics.Add("B", "Banana"); phonetics.Add("C", "Cat"); phonetics.Add("D", "Dog"); phonetics.Add("E", "Elephant"); phonetics.Add("F", "Fish"); //print hahshtable collection Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in phonetics){ Console.WriteLine("{0} and {1} ", entry.Key, entry.Value); } string text = ""; IDictionaryEnumerator enumerator = phonetics.GetEnumerator(); while (enumerator.MoveNext()) { text += enumerator.Key + ", "; text += enumerator.Value + ""; } Console.WriteLine("String value: {0}", text); } }
Dalam program ini, kami mempunyai jadual cincang simbol fonetik dari A hingga F. Kami mengisytiharkan 'teks' pembolehubah rentetan. Kemudian kami mengisytiharkan IDictionaryEnumerator untuk mengulangi jadual cincang. Kemudian menggunakan enumerator ini, kami menggunakan gelung 'while' untuk menyalin kandungan koleksi jadual cincang ke dalam rentetan.
Atur cara menjana output berikut.
Hashtable items: B and Banana C and Cat A and Apple F and Fish D and Dog E and Elephant String value: B, Banana C, Cat A, Apple F, FishD, Dog E, Elephant
Di sini kami mula-mula memaparkan kandungan koleksi jadual hash. Seterusnya, kami memaparkan rentetan. Kita dapat melihat bahawa nilai rentetan terdiri daripada semua elemen jadual cincang yang dipisahkan oleh ‘
’ (karakter baris baharu).
Mari laksanakan program lain untuk menukar jadual cincang kepada rentetan. Program C# yang lengkap ditunjukkan di bawah.
using System; using System.Collections; class myHashTable { public static void Main() { // Create a Hashtable named numberNames Hashtable numberNames = new Hashtable(); // Add key/value pairs in numberNames numberNames.Add("10", "Ten"); numberNames.Add("20", "Twenty"); numberNames.Add("30", "Thirty"); numberNames.Add("40", "Forty"); numberNames.Add("50", "Fifty"); numberNames.Add("60", "Sixty"); //print hahshtable collection Console.WriteLine("Hashtable items:"); foreach(DictionaryEntry entry in numberNames){ Console.WriteLine("{0} => {1} ", entry.Key, entry.Value); } string text = ""; IDictionaryEnumerator enumerator = numberNames.GetEnumerator(); while (enumerator.MoveNext()) { text += enumerator.Key + " and "; text += enumerator.Value + ""; } Console.WriteLine("String value: {0}", text); } }
Program ini serupa dengan yang sebelumnya, dengan beberapa perubahan kecil dalam cara jadual cincang dan nilai rentetan dipaparkan.
Di sini, kami mempunyai jadual cincang dengan nombor sebagai kunci dan nama nombor yang sepadan sebagai nilai. Kami kemudiannya menggunakan IDictionaryEnumerator untuk mengisytiharkan objek yang berulang di atas jadual cincang dan menyalin setiap item (kunci dan nilai) jadual cincang ke dalam rentetan. Setiap entri jadual cincang dipisahkan oleh pembatas ‘
’.
Atur cara menjana output berikut.
Hashtable items: 10 => Ten 60 => Sixty 40 => Forty 50 => Fifty 20 => Twenty 30 => Thirty String value: 10 and Ten 60 and Sixty 40 and Forty 50 and Fifty 20 and Twenty 30 and Thirty
Daripada output di atas kita dapat melihat bahawa item koleksi jadual hash telah berjaya disalin ke pembolehubah rentetan.
Jadi, dalam artikel ini, kami membincangkan menukar koleksi jadual cincang kepada rentetan. Walaupun tiada cara langsung untuk melakukan penukaran ini, kami boleh menukar koleksi jadual cincang kepada rentetan dengan mudah menggunakan arahan berikut: IDictionaryEnumerator. Ia memegang item (kunci dan nilai) jadual cincang, yang boleh kami akses dan salin dengan mudah ke dalam rentetan menggunakan gelung.
Atas ialah kandungan terperinci Bagaimana untuk menukar jadual hash kepada rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!