Maison >développement back-end >Tutoriel C#.Net >Comment ajouter des éléments à une collection de tables de hachage en C#

Comment ajouter des éléments à une collection de tables de hachage en C#

王林
王林avant
2023-09-12 09:49:021146parcourir

如何在 C# 中向哈希表集合添加项目

Nous avons discuté des bases des tables de hachage. Les collections de tables de hachage en C# sont utilisées pour stocker des paires clé-valeur, où chaque paire clé-valeur est organisée en fonction du code de hachage de la clé. Le code de hachage est calculé à l'aide d'une fonction de code de hachage. En interne, les tables de hachage utilisent des compartiments pour stocker les données. Un bucket n'est rien de plus qu'un ensemble d'éléments virtuels dans une table de hachage. Un code de hachage est associé à chaque bucket.

Du point de vue de la programmation, une table de hachage est similaire à un objet dictionnaire, mais contrairement à un objet dictionnaire, une table de hachage peut stocker des objets de différents types de données. En termes de performances, les tables de hachage présentent des performances inférieures car les éléments de données des tables de hachage sont des objets. Par conséquent, afin de stocker et de récupérer les valeurs d'une table de hachage, le boxing et le unboxing des objets doivent être effectués.

Dans cet article, nous verrons comment ajouter des éléments à une collection de tables de hachage.

Comment ajouter des éléments à une collection de tables de hachage ?

La collection

hashtable en C# est implémentée à l'aide de la classe hashtable. Cette classe fournit diverses méthodes pour effectuer différentes opérations sur la table de hachage. L'une des méthodes est Add().

La méthode

Add() de la classe Hash table est utilisée pour ajouter un élément avec la clé spécifiée et sa valeur correspondante dans la table de hachage. Lors de l'ajout de paires clé-valeur à une table de hachage, nous devons nous assurer que les clés ne sont pas dupliquées ou vides, car les tables de hachage n'autorisent que des clés non vides et uniques.

Dans la collection de tables de hachage de C#, nous pouvons avoir des éléments de paire clé/valeur de différents types de données.

Passons maintenant à la méthode Add().

Le prototype général de la méthode Add() d'une collection de tables de hachage est donné ci-dessous.

Grammaire

public virtual void Add(object key, object value);

Paramètres

  • Key - La clé spécifiée (type System.Object) de l'élément en cours d'ajout. Doit être non nul.

  • Valeur - La valeur spécifiée de l'élément (type System.Object) Cette valeur peut être nulle.

Exception : cette méthode lève l'exception suivante.

  • ArgumentNullException − lorsque la clé est nulle.

  • ArgumentException − Un élément avec la même clé existe déjà.

  • NotSupportedException − La table de hachage a une taille fixe ou est en lecture seule.

Si nous avons un objet table de hachage déclaré comme suit -

Hashtable hshTable = new Hashtable();

Nous pouvons ensuite ajouter un élément à cet objet de table de hachage en utilisant la méthode Add() comme indiqué ci-dessous -

hshTable.Add("msg", "charVal");

Étant donné que les tables de hachage autorisent des éléments de types de données mixtes, nous pouvons également ajouter des valeurs numériques dans la même table de hachage -

hshTable.Add(1, 2022);

En plus d'utiliser la méthode Add(), nous pouvons également attribuer directement des valeurs à la table de hachage. Par exemple, pour ajouter un élément avec clé = 2, on peut simplement écrire,

hshTable[3] = "three";

L'instruction ci-dessus créera une paire clé-valeur (3, "trois") dans la table de hachage.

Exemple de programmation d'ajout d'éléments à une collection de tables de hachage

Le programme suivant montre comment créer une table de hachage de différents éléments à l'aide de la méthode Add().

Exemple 1

using System;
using System.Collections;
class Program {
   static void Main(string[] args) {
      Hashtable mixedHashTable = new Hashtable();
      //add method
      mixedHashTable.Add("msg", "Collection");
      mixedHashTable.Add("site", "HashTable");
      mixedHashTable.Add(1, 3.14);
      mixedHashTable.Add(2, null);

      //assign value to the key
      mixedHashTable[3] = "Tutorial";

      // Add method throws an exception if the key already exists in //hashtable
      try {
         mixedHashTable.Add(2, 750);
      } catch {
         Console.WriteLine("Hashtable already has an element with Key = '2'.");
      }
      Console.WriteLine("*********HashTable Elements********");
      // It will return elements as Key-Value Pair.
      foreach (DictionaryEntry elem in mixedHashTable) {
         Console.WriteLine("Key = {0}, Value = {1}", elem.Key, elem.Value);
      }
      Console.ReadLine();
   }
}

Le programme ci-dessus crée d'abord un objet de table de hachage en utilisant le constructeur par défaut. Il ajoute ensuite différents éléments à la table de hachage à l'aide de la méthode Add(). Nous pouvons également ajouter des éléments à la table de hachage par affectation directe. Le programme ci-dessus ajoute des paires clé-valeur de différents types de données à une table de hachage. Utilisez ensuite un itérateur pour afficher les éléments de la table de hachage un par un.

Sortie

Le résultat de l'exemple ci-dessus ressemble à ceci -

Hashtable already has an element with Key = '2'.
*********HashTable Elements********
Key = 2, Value = 
Key = msg, Value = Collection
Key = 3, Value = Tutorial
Key = site, Value = HashTable
Key = 1, Value = 3.14

La sortie montre toutes les paires clé-valeur que nous avons ajoutées à la table de hachage.

Prenons un autre exemple d'ajout d'éléments à une table de hachage. La procédure est la suivante.

Exemple 2

using System;
using System.Collections;
class hTable {
   // Driver code
   public static void Main() {
      // Creating a Hashtable
      Hashtable strHashTable = new Hashtable();

      // Adding elements in Hashtable
      strHashTable.Add("4", "Even Number");
      strHashTable.Add("9", "Odd Number");
      strHashTable.Add("5", "Odd and Prime Number");
      strHashTable.Add("2", "Even and Prime Number");

      // Get a collection of the keys.
      ICollection c = strHashTable.Keys;

      // Displaying the hashtable contents
      Console.WriteLine("=========Contents of the Hashtable=========");
      foreach(string str in c)
         Console.WriteLine(str + ": " + strHashTable[str]);
   }
}

Dans ce programme, nous ajoutons une valeur de type chaîne. Nous ajoutons la valeur à l'aide de la méthode Add(), puis récupérons l'ensemble de clés dans la table de hachage. Nous utilisons ensuite une boucle foreach pour parcourir cet ensemble de clés et afficher chaque clé et sa valeur correspondante.

Sortie

Le résultat généré est le suivant -

=========Contents of the Hashtable=========
5: Odd and Prime Number
9: Odd Number
2: Even and Prime Number
4: Even Number

De cette façon, nous pouvons ajouter des éléments à la collection hashtable en utilisant la méthode Add() de la classe hashtable.

Dans cet article, nous avons appris comment ajouter des éléments à une collection de tables de hachage. Dans les prochains articles, nous discuterons davantage des opérations de table de hachage.

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