Bagaimana untuk mengalih keluar item daripada koleksi jadual hash dalam C#?

王林
Lepaskan: 2023-09-09 21:01:06
ke hadapan
670 orang telah melayarinya

如何在 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.

Bagaimana untuk memadam item daripada koleksi Hashtable?

Kelas

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.

Tatabahasa

public virtual void Remove (object key);
Salin selepas log masuk

Parameter

  • Kunci − Kunci elemen yang akan dialih keluar daripada koleksi jadual cincang. Ini adalah jenis System.Object.

Tercapai

Kaedah

Alih Keluar(Objek) adalah sebahagian daripada antara muka IDictionary.

Pengecualian

  • 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.

Contoh pengaturcaraan kaedah Remove().

Contoh 1

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]);
      }
   }
}
Salin selepas log masuk

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.

Output

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
Salin selepas log masuk

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.

Output

**********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
Salin selepas log masuk

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.

Contoh 2

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();
   }
}
Salin selepas log masuk

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.

Output

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.
Salin selepas log masuk
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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan