Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Bagaimana untuk mengalih keluar item daripada koleksi jadual hash dalam C#?
Hashtable dalam C# ialah koleksi pasangan nilai kunci yang disusun berdasarkan kod cincang utama. Item dalam jadual hash boleh diakses menggunakan kekunci. Kelas Hashtable C# ialah kelas yang melaksanakan jadual hash.
Menggunakan kelas ini, kita boleh mencipta objek jadual hash baharu dengan bantuan pembina yang disediakan. Kelas Hashtable juga menyediakan pelbagai kaedah yang mana kita boleh melakukan pelbagai operasi pada jadual hash. Operasi ini termasuk menambah item, menyemak sama ada kunci yang ditentukan wujud, mengira bilangan item, memadam item daripada jadual cincang, dsb.
Dalam artikel ini, kami akan membincangkan mengalih keluar item daripada koleksi jadual cincang yang diberikan kunci yang ditentukan.
Hashtable menyediakan kaedah yang dipanggil "Remove" untuk mengalih keluar item daripada koleksi hashtable. Memandangkan kunci, kaedah Alih Keluar akan mengalih keluar item dengan kunci yang ditentukan daripada jadual hash.
Prototaip kaedah Buang diberikan di bawah.
public virtual void Remove (object key);
Kunci − Kunci elemen yang akan dialih keluar daripada koleksi jadual cincang. Ini adalah jenis System.Object.
Alih Keluar(Objek) adalah sebahagian daripada antara muka IDictionary.
ArgumentNullException −Pengecualian ini dilemparkan jika kunci yang ditentukan adalah batal.
NotSupportedException − Dibuang jika jadual cincang mempunyai saiz tetap atau dibaca sahaja.
Jika kunci yang ditentukan tidak wujud dalam jadual cincang, kaedah Remove() tidak akan membuang sebarang pengecualian. Jika kunci tidak wujud, jadual cincang akan kekal tidak berubah dan program akan dilaksanakan dengan jayanya.
Atur cara berikut menunjukkan cara menggunakan kaedah Remove() untuk mengalih keluar item daripada koleksi jadual cincang.
using System; using System.Collections; class MyHashTable { public static void Main(){ // Creating a Hashtable Hashtable numberNames = new Hashtable(); // Adding elements in Hashtable numberNames.Add("2", "Two"); numberNames.Add("13", "Thirteen"); numberNames.Add("24", "Twenty Four"); numberNames.Add("59", "Fifty Nine"); // Print the contents of Hashtable Console.WriteLine("**********Contents of Hashtable**********"); foreach(var item in numberNames.Keys){ Console.WriteLine("key ={0}, Value = {1}", item,numberNames[item]); } //read the key for which element is to be deleted Console.WriteLine("Enter the key for which the element is to be removed from Hashtable "); string key = (string)Console.ReadLine(); //remove the element numberNames.Remove(key); //display the hashtable after deletion Console.WriteLine("******Contents of Hashtable(after deletion)******"); foreach(var item in numberNames.Keys){ Console.WriteLine("key ={0}, Value = {1}", item,numberNames[item]); } } }
Dalam program ini, mula-mula kita mencipta jadual cincang di mana kuncinya ialah nombor dan nilainya ialah nama angka yang sepadan. Jadual cincang kemudian dipaparkan pada skrin. Seterusnya, pengguna digesa supaya kunci elemen dialih keluar daripada jadual cincang. Sebaik sahaja kunci dimasukkan, kaedah Remove() dipanggil, menghantar kunci sebagai parameter. Kemudian paparkan kandungan jadual cincang sekali lagi. Jika kunci wujud dalam jadual cincang, kaedah Remove() akan mengalih keluar elemen, jika tidak, jadual cincang akan kekal tidak berubah.
Atur cara menjana output berikut.
**********Contents of Hashtable********** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two Enter the key for which the element is to be removed from Hashtable 13 ******Contents of Hashtable(after deletion)****** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =2, Value = Two
Output di atas menunjukkan perbezaan kandungan jadual cincang sebelum dan selepas pemadaman.
Sekarang mari kita lihat bagaimana output berubah apabila pengguna memasukkan kunci yang tidak wujud dalam jadual cincang. Dalam kes ini, seperti yang telah disebutkan, jadual hash kekal tidak berubah dan tiada pengecualian dibuang. Berikut adalah output yang dihasilkan oleh program di atas.
**********Contents of Hashtable********** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two Enter the key for which the element is to be removed from Hashtable 3 ******Contents of Hashtable(after deletion)****** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two
Di sini, pengguna memasukkan kunci = 3, tetapi ia tidak wujud dalam jadual cincang. Dalam kes ini, kerana kaedah Remove() tidak mengalih keluar sebarang elemen, jadual cincang kekal tidak berubah.
Sekarang mari kita pertimbangkan satu lagi contoh pemadaman jadual cincang. Prosedur yang sepadan ditunjukkan di bawah.
using System; using System.Collections; public class myHashtable{ public static void Main(){ // Create a new Hashtable. var tongueTwister = new Hashtable(); tongueTwister.Add("1a", "She"); tongueTwister.Add("1b", "sells"); tongueTwister.Add("1c", "sea"); tongueTwister.Add("2a", "shells"); tongueTwister.Add("2b", "on"); tongueTwister.Add("2c", "the"); tongueTwister.Add("3a", "sea"); tongueTwister.Add("3b", "shore"); // Displays the Hashtable. Console.WriteLine("The Hashtable initially contains the following:"); foreach (DictionaryEntry elem in tongueTwister) Console.WriteLine($" {elem.Key}: {elem.Value}"); Console.WriteLine(); // Removes the element with the specified key. string key = “3b”; tongueTwister.Remove(key); // Displays the Hashtable after deletion. Console.WriteLine("Hashtable after removing the key = "{0}":",key); foreach (DictionaryEntry elem in tonguetwister) Console.WriteLine($" {elem.Key}: {elem.Value}"); Console.WriteLine(); } }
Dalam program ini kami mempunyai jadual hash yang mengandungi pemintal lidah "Dia menjual kerang di pantai". Kami menomborkan kekunci 1a, 1b, 1c, 2a, 2b, dsb. Pertama, kami memaparkan keseluruhan jadual hash. Kemudian kami menggunakan kaedah Remove() dan padamkan elemen dengan kunci = 3b. Jadual cincang yang baru dikemas kini dipaparkan semula.
Atur cara menjana output berikut.
The Hashtable initially contains the following: 3b: shore 1a: She 1b: sells 2b: on 2c: the 3a: sea 2a: shells 1c: sea Hashtable after removing the key = "3b": 1a: She 1b: sells 2b: on 2c: the 3a: sea 2a: shells 1c: sea Note the hashtable after deleting the key = 3b.Kaedah
Remove() kelas Hashtable digunakan untuk mengalih keluar atau memadam elemen dalam jadual cincang satu demi satu. Kaedah Remove() tidak membuang pengecualian jika kunci yang ditentukan (parameter kaedah) tidak wujud dalam jadual cincang. Ia akan terus melaksanakan program tanpa mengubah jadual cincang.
Itu sahaja tentang kaedah Remove(), yang digunakan untuk mengalih keluar item daripada koleksi jadual cincang berdasarkan kunci yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar item daripada koleksi jadual hash dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!