Hashtable在C#中是一個基於鍵的雜湊碼組織的鍵值對集合。可以使用鍵來存取hashtable中的項目。 C#的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()方法從雜湊表集合中刪除項目。
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()方法沒有刪除任何元素,因此哈希表保持不變。
現在讓我們考慮另一個哈希表刪除的例子。對應的程序如下所示。
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中文網其他相關文章!