Comment obtenir la valeur de la collection HashTable en C# à l'aide de la clé spécifiée

王林
Libérer: 2023-08-28 23:09:06
avant
693 Les gens l'ont consulté

如何使用指定键从 C# 中的 HashTable 集合中获取值

Une table de hachage est une collection de paires clé-valeur. Nous pouvons accéder aux paires clé-valeur à l’aide d’un itérateur. On peut également accéder aux clés de la table de hachage dans une collection. De même, nous pouvons accéder aux valeurs dans une table de hachage. Étant donné une table de hachage, il est également possible d'accéder à la valeur d'une clé spécifiée ou à la clé correspondante d'une valeur spécifiée.

让我们讨论一下如何在给定键的哈希表集合中访问一个值。

如何使用指定的键从Hashtable集合中获取值?

Ici, nous devons obtenir une valeur à partir de la paire clé−valeur de tables de hachage lorsqu'une clé est donnée.

考虑以下哈希表。

{“US", "New York"}
{"FR", "Paris"}
{"UK", "London"}
{"IN", "Mumbai"}
{"GER", "Berlin"}
Copier après la connexion

Ici, supposons que nous devions trouver la valeur de la clé « UK ». Il faut donc parcourir la table de hachage pour savoir si la table de hachage contient la clé = UK. Une fois la clé = « UK » trouvée, nous pouvons accéder à sa valeur correspondante sous forme de hashtable[key].

Exemple

Le programme qui effectue exactement l'opération ci-dessus est présenté ci-dessous −

using System;
using System.Collections;
class MyHashTable {
   // Main Method
   static public void Main() {

      // Create a hashtable instance
      Hashtable Citytable = new Hashtable();

      // Adding key/value pair in the hashtable using Add() method
      Citytable.Add("US", "New York");
      Citytable.Add("FR", "Paris");
      Citytable.Add("UK", "London");
      Citytable.Add("IN", "Mumbai");
      Citytable.Add("GER", "Berlin");
      
      String key;
      Console.WriteLine("Enter the key whose value is to be printed:");
      key = Console.ReadLine();
      if(key != ""){
         if(Citytable.Contains(key) == true){
         string keyval = (string)Citytable[key];
         Console.WriteLine("The value of key {0} = {1}", key,keyval);
      }
      else
         Console.WriteLine ("Value for the key= {0} does not exist", key);
      }    
      Console.ReadKey();
   }
}
Copier après la connexion

在上面的程序中,我们定义了一个哈希表。然后用户输入要获取值的键。一旦键被读取为输入,我们首先确定键是否为null或空。这是因为哈希表的键不应为null。因此,如果用户输入一个空值,我们将不会继续查找值。

因此,如果键不为空,我们将检查哈希表是否包含指定的键。为此,我们使用C#中的哈希表集合方法 Contains() ,如果键存在于哈希表中则返回vrai,如果键不存在则返回faux。

如果 Contains() 方法返回 true,则我们只需访问该特定键的值。

string keyval = (string)Citytable[key];
Copier après la connexion

Ensuite, cette valeur est affichée à l'utilisateur.

Sortie

Enter the key whose value is to be printed:
FR
The value of key FR = Paris
Copier après la connexion

在这个输出中,用户执行了程序并输入了键值为FR。由于这个键已经存在于哈希表中,该键对应的值成功返回。

现在,如果我们输入一个在哈希表中不存在的键值?

Exécutons à nouveau le programme. Maintenant, nous n'avons plus de clé dans notre table de hachage pour le pays Canada. Entrons la clé comme CAN pour le Canada. Le résultat est affiché ci-dessous.

Sortie

Enter the key whose value is to be printed:
CAN
Value for the key= CAN do not exist
Copier après la connexion

在这里,由于哈希表中不包含 key=CAN,程序返回值不存在的消息。

以这种方式,我们可以开发一个交互式程序,从哈希表集合中找到指定键的值。

Prenons un autre exemple pour trouver la valeur donnée à une clé à l'aide d'une table de hachage.

Ici, nous considérerons la table de hachage suivante contenant des nombres et leurs noms de numéros correspondants.

{“1.1", "One point One"}
{"1.2", "One point Two"}
{"1.3", "One point Three"}
{"1.4", "One point Four"}
{"1.5", "One point Five"}
Copier après la connexion

类似于前面的示例,这里我们也会要求用户输入要查找值的键,然后在哈希表中搜索指定的键并显示其值。

Exemple 2

Vous trouverez ci-dessous le programme pour faire de même.

using System;
using System.Collections;
class MyHashTable {
   // Main Method
   static public void Main() {

      // Create a hashtable instance
      Hashtable Numbernames = new Hashtable();

      // Adding key/value pair in the hashtable using Add() method
      Numbernames.Add("1.1", "One point One");
      Numbernames.Add("1.2", "One point Two");
      Numbernames.Add("1.3", "One point Three");
      Numbernames.Add("1.4", "One point Four");
      Numbernames.Add("1.5", "One point Five");

      String key = "1.4";
      if(key != ""){
          if(Numbernames.Contains(key) == true){
              string keyval = (string)Numbernames[key];
              if(keyval != "")
                 Console.WriteLine("The value of key {0} = {1}", key,keyval);
              else
                 Console.WriteLine("The value for key = {0} does not exist", key);
          }
          else
             Console.WriteLine ("The key= {0} does not exist in the NumberNames hashtable", key);
      }    
      Console.ReadKey();
   }
}
Copier après la connexion

Le programme est le même que l'exemple précédent à l'exception de la table de hachage et d'une condition supplémentaire que nous avons spécifiée pour vérifier une valeur vide. En effet, il peut arriver qu'une clé spécifiée soit présente dans la table de hachage, mais que sa valeur correspondante puisse être vide. Deuxièmement, nous ne lisons pas les entrées de l'utilisateur dans ce programme, mais nous avons directement utilisé une clé = « 1.4 » et nous imprimons la valeur de cette clé. Nous avons donc introduit un contrôle supplémentaire dans ce programme. Par conséquent, ce programme vérifie maintenant −

  • Si la clé spécifiée est vide

  • Si la clé n'est pas vide, le programme vérifie si la table de hachage contient la clé.

  • Si la table de hachage contient la clé, elle récupère la valeur de la clé. Si la valeur n'est pas vide, alors le programme affiche la valeur.

  • Si la valeur est vide, le message approprié s'affiche.

Sortie

The value of key 1.4 = One point Four
Copier après la connexion

Cette sortie est générée lorsque nous spécifions une clé correcte présente dans la 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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal