首頁  >  文章  >  後端開發  >  如何在 C# 中從哈希表集合中刪除項目?

如何在 C# 中從哈希表集合中刪除項目?

王林
王林轉載
2023-09-09 21:01:06676瀏覽

如何在 C# 中从哈希表集合中删除项目?

Hashtable在C#中是一個基於鍵的雜湊碼組織的鍵值對集合。可以使用鍵來存取hashtable中的項目。 C#的Hashtable類別是實作hashtable的類別。

使用此類,我們可以在提供的建構函數的幫助下創建一個新的雜湊表物件。 Hashtable 類別也提供了各種方法,我們可以使用它們對雜湊表執行各種操作。這些操作包括新增項目、檢查指定鍵是否存在、計算項目數量、從雜湊表中刪除項目等。

在本文中,我們將討論從給定指定鍵的雜湊表集合中刪除項目。

如何從Hashtable集合中刪除項目?

Hashtable類別提供了一個名為「Remove」的方法,用於從hashtable集合中刪除一個項目。給定一個鍵,Remove方法將從hashtable中刪除具有指定鍵的項目。

下面給出了Remove方法的原型。

文法

public virtual void Remove (object key);

參數

  • Key − 要從雜湊表集合中刪除的元素的鍵。這是類型為 System.Object的。

實作

Remove(Object)方法是IDictionary介面的一部份。

異常

  • ArgumentNullException −如果指定的鍵為 null,則拋出此例外。

  • NotSupportedException − 如果雜湊表具有固定大小或唯讀,則拋出。

如果在雜湊表中指定的鍵不存在,Remove() 方法不會拋出任何例外。如果鍵不存在,哈希表將保持不變,程式將成功執行。

Remove()方法的程式設計範例

範例 1

以下程式示範如何使用Remove()方法從雜湊表集合中刪除項目。

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]);
      }
   }
}

在這個程式中,首先我們創建了一個哈希表,其中鍵是數字,值是對應的數字名稱。然後將哈希表顯示在螢幕上。接下來,提示使用者輸入要從雜湊表中刪除元素的鍵。一旦鍵被輸入,就會呼叫Remove()方法,並將該鍵作為參數傳遞。然後再次顯示哈希表的內容。如果鍵存在於雜湊表中,Remove()方法將刪除該元素,否則,則雜湊表將保持不變。

輸出

該程式產生以下輸出。

**********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

上述輸出顯示了刪除之前和刪除之後哈希表內容的差異。

現在讓我們來看看當使用者輸入的鍵在雜湊表中不存在時,輸出會如何變化。在這種情況下,正如已經提到的,哈希表保持不變,不會拋出任何異常。以下是上述程式產生的輸出。

輸出

**********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

在這裡,使用者輸入了key = 3,但在雜湊表中不存在。在這種情況下,由於Remove()方法沒有刪除任何元素,因此哈希表保持不變。

範例2

現在讓我們考慮另一個哈希表刪除的例子。對應的程序如下所示。

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();
   }
}

在這個程式中,我們有一個哈希表,其中包含繞口令「她在海邊賣貝殼」。我們將按鍵編號為 1a、1b、1c、2a、2b 等。首先,我們顯示了整個哈希表。然後我們使用Remove()方法並刪除key = 3b的元素。新更新的哈希表再次顯示。

輸出

該程式產生以下輸出。

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.

Hashtable類別的Remove()方法用於逐一刪除或刪除散列表中的元素。如果散列表中不存在指定的鍵(方法的參數),Remove()方法不會拋出異常。它將繼續執行程式而不改變散列表。

這就是關於Remove()方法的全部內容,用於根據指定的鍵從哈希表集合中刪除項目。

以上是如何在 C# 中從哈希表集合中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除