Maison  >  Article  >  développement back-end  >  Comment supprimer des éléments de la collection de tables de hachage en C# ?

Comment supprimer des éléments de la collection de tables de hachage en C# ?

王林
王林avant
2023-09-09 21:01:06616parcourir

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

Hashtable en C# est une collection de paires clé-valeur organisées en fonction de codes de hachage clés. Les éléments d'une table de hachage sont accessibles à l'aide de clés. La classe Hashtable de C# est une classe qui implémente hashtable.

En utilisant cette classe, nous pouvons créer un nouvel objet de table de hachage à l'aide du constructeur fourni. La classe Hashtable fournit également diverses méthodes permettant d'effectuer diverses opérations sur la table de hachage. Ces opérations incluent l'ajout d'un élément, la vérification si une clé spécifiée existe, le comptage du nombre d'éléments, la suppression d'éléments d'une table de hachage, etc.

Dans cet article, nous discuterons de la suppression d'un élément d'une collection de tables de hachage à l'aide d'une clé spécifiée.

Comment supprimer des éléments de la collection Hashtable ?

La classe

Hashtable fournit une méthode appelée "Remove" pour supprimer un élément de la collection de tables de hachage. Étant donné une clé, la méthode Remove supprimera l'élément avec la clé spécifiée de la table de hachage.

Le prototype de la méthode Remove est donné ci-dessous.

Grammaire

public virtual void Remove (object key);

Paramètres

  • Clé − La clé de l'élément à supprimer de la collection de tables de hachage. Il s'agit de type System.Object.

Réalisé

La méthode

Remove(Object) fait partie de l'interface IDictionary.

Exception

  • ArgumentNullException −Cette exception est levée si la clé spécifiée est nulle.

  • NotSupportedException − Levée si la table de hachage a une taille fixe ou est en lecture seule.

Si la clé spécifiée n'existe pas dans la table de hachage, la méthode Remove() ne lèvera aucune exception. Si la clé n'existe pas, la table de hachage restera inchangée et le programme s'exécutera avec succès.

Exemple de programmation de la méthode Remove()

Exemple 1

Le programme suivant montre comment utiliser la méthode Remove() pour supprimer un élément d'une collection de tables de hachage.

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

Dans ce programme, nous créons d'abord une table de hachage où les clés sont des nombres et les valeurs sont les noms numériques correspondants. La table de hachage est alors affichée à l'écran. Ensuite, l'utilisateur est invité à indiquer la clé de l'élément à supprimer de la table de hachage. Une fois la clé saisie, la méthode Remove() est appelée, en passant la clé en paramètre. Affichez ensuite à nouveau le contenu de la table de hachage. Si la clé existe dans la table de hachage, la méthode Remove() supprimera l'élément, sinon la table de hachage restera inchangée.

Sortie

Le programme génère le résultat suivant.

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

Le résultat ci-dessus montre la différence dans le contenu de la table de hachage avant et après la suppression.

Voyons maintenant comment le résultat change lorsque l'utilisateur saisit une clé qui n'existe pas dans la table de hachage. Dans ce cas, comme déjà mentionné, la table de hachage reste inchangée et aucune exception n'est levée. Ce qui suit est la sortie générée par le programme ci-dessus.

Sortie

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

Ici, l'utilisateur a saisi key = 3, mais elle n'existe pas dans la table de hachage. Dans ce cas, puisque la méthode Remove() ne supprime aucun élément, la table de hachage reste inchangée.

Exemple 2

Considérons maintenant un autre exemple de suppression de table de hachage. La procédure correspondante est indiquée ci-dessous.

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

Dans ce programme nous avons une table de hachage contenant le virelangue "Elle vend des coquillages au bord de la mer". On numérote les clés 1a, 1b, 1c, 2a, 2b, etc. Tout d’abord, nous affichons l’intégralité de la table de hachage. Ensuite, nous utilisons la méthode Remove() et supprimons l'élément avec key = 3b. La table de hachage nouvellement mise à jour s'affiche à nouveau.

Sortie

Le programme génère le résultat suivant.

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.
La méthode

Remove() de la classe Hashtable est utilisée pour supprimer ou supprimer des éléments de la table de hachage un par un. La méthode Remove() ne lève pas d'exception si la clé spécifiée (paramètre de la méthode) n'existe pas dans la table de hachage. Il continuera à exécuter le programme sans modifier la table de hachage.

Il s’agit de la méthode Remove(), qui est utilisée pour supprimer un élément d’une collection de tables de hachage en fonction d’une clé spécifiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer