Bagaimana untuk mendapatkan nilai kunci daripada HashTable dalam C#?

王林
Lepaskan: 2023-08-28 23:05:15
ke hadapan
731 orang telah melayarinya

Bagaimana untuk mendapatkan nilai kunci daripada HashTable dalam C#?

Jadual cincang ialah koleksi bukan generik dalam C#. Ia menyimpan pasangan nilai kunci , serupa dengan koleksi "kamus" generik. HashTable ditakrifkan dalam System.Collections.namespace.

HashTable terdiri daripada pasangan kunci/nilai di mana setiap kunci dikira sebagai kod cincang dan disimpan secara dalaman dalam baldi yang berbeza. Apabila HashTable diakses, kod cincang dipadankan dengan kod cincang untuk kunci yang ditentukan, dengan itu mengakses nilai yang sepadan. Mekanisme ini mengoptimumkan carian dalam jadual cincang.

Sekarang mari kita bincangkan cara mendapatkan kunci daripada HashTable dalam C#.

Bagaimana untuk mendapatkan kunci daripada jadual hash?

Kita boleh menggunakan dua kaedah untuk mendapatkan kunci daripada jadual cincang.

  • Gunakan untuksetiap gelung dan akses kekunci

  • dengan mengulangi jadual cincang
  • Dapatkan set kunci daripada jadual cincang dan paparkan satu persatu.

Mari kita tunjukkan kedua-dua kaedah menggunakan contoh.

Gunakan Untuk-Setiap gelung untuk mendapatkan kunci daripada jadual cincang

Dalam kaedah ini, kami mengisytiharkan jadual cincang dengan pasangan kunci/nilai. Kemudian menggunakan gelung untuk-setiap kami memaparkan kekunci dalam jadual cincang.

Untuk mencapai ini secara terprogram, kami akan menggunakan jadual cincang berikut.

{“US", "New York"}
{"FR", "Paris"}
{"UK", "London"}
{"IN", "Mumbai"}
{"GER", "Berlin"}
Salin selepas log masuk

Jadual cincang di atas mempunyai kod negara sebagai kunci dan nilai sebagai bandar penting yang sepadan.

Jika jadual cincang di atas dipanggil Citytable, maka kami mengakses kekuncinya menggunakan lelaran DictionaryEntry seperti yang ditunjukkan di bawah -

foreach(DictionaryEntry ele1 in Citytable){
        Console.WriteLine("{0}", ele1.Key);
Salin selepas log masuk

Kod ini akan memaparkan setiap kunci dalam jadual cincang.

Contoh 1

Pelan kerja lengkap untuk kaedah ini adalah seperti berikut -

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");
      
      //Print hashtable keys
      Console.WriteLine("Citytable Keys:");
      foreach(DictionaryEntry ele1 in Citytable){
         Console.WriteLine("{0}", ele1.Key);
      }      
   }
}
Salin selepas log masuk

Dalam program ini, kami mengisytiharkan dan mentakrifkan jadual cincang yang dipanggil Citytable, yang masing-masing mengandungi kod negara dan bandar pentingnya sebagai pasangan kunci/nilai. Selepas mengisi jadual cincang dengan nilai menggunakan kaedah Add(), kami memulakan gelung untuk setiap yang melelaran Citytable menggunakan lelaran "ele1" jenis DictionaryEntry. Kemudian untuk setiap lelaran, nilai kunci dicetak.

Output

Citytable Keys:
FR
US
IN
GER
UK
Salin selepas log masuk

Seperti yang kita lihat, hanya kekunci Citytable ditunjukkan dalam output. Ini ialah kaedah yang paling biasa kerana kami terutamanya menggunakan untuk setiap gelung untuk memaparkan kandungan mana-mana koleksi atau tatasusunan.

Kita boleh mengubah suai sedikit program di atas supaya ia memaparkan nilai yang sepadan dengan kunci yang diberikan.

Untuk melakukan ini, kita perlu membuat perubahan berikut dalam gelung lelaran.

foreach(DictionaryEntry ele1 in Citytable){
   Console.WriteLine("{0} = {1}", ele1.Key, ele1.Value);
Salin selepas log masuk

Dalam kod di atas, kami kini turut mencetak bahagian nilai pembilang lelaran.

Contoh 2

Prosedur lengkap untuk pengubahsuaian ini adalah seperti berikut -

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");
      
      //Print hashtable keys
      Console.WriteLine("Citytable Keys:");
      foreach(DictionaryEntry ele1 in Citytable){
         Console.WriteLine("{0} = {1}", ele1.Key, ele1.Value);
      }      
   }
}
Salin selepas log masuk

Output

Citytable Keys:
FR = Paris
US = New York
IN = Mumbai
GER = Berlin
UK = London
Salin selepas log masuk

Jadi, di sini kami tunjukkan pasangan kunci/nilai Citytable.

Mari beralih kepada kaedah seterusnya.

Gunakan koleksi

Dalam kaedah ini, kami mula-mula mendapatkan koleksi kunci daripada Hashtable menggunakan koleksi dan kemudian mencetak kunci ini. Kekunci dicetak sebagai nilai rentetan, yang tidak lebih daripada elemen koleksi.

Mari kita ambil contoh jadual cincang dalam bahasa pengaturcaraan.

{"CPP", "C++"}
{"CS", "C#"}
{"JAVA", "JAVA"}
{"PL", "PERL"}
{"JS", "JAVASCRIPT"}
Salin selepas log masuk

Kami mentakrifkan jadual di atas sebagai jadual cincang, Langtable dalam program. Kami kemudian mengisytiharkan "kunci" objek ICollection dan mengumpul kekunci jadual cincang dalam objek itu.

ICollection keys = Langtable.Keys;
Salin selepas log masuk

Setelah kami mempunyai koleksi kunci, kami boleh dengan mudah mengulang koleksi dan memaparkan setiap kunci sebagai rentetan.

foreach (String k in keys){
   Console.WriteLine(k);
}
Salin selepas log masuk

Dengan cara ini kita boleh memaparkan setiap kunci dalam jadual cincang secara individu.

Contoh

Prosedur lengkap untuk kaedah ini diberikan di sini.

using System;
using System.Collections;
class MyHashTable {
   // Main Method
   static public void Main() {
    
      // Create a hashtable instance
      Hashtable Langtable = new Hashtable();
      
      // Adding key/value pair in the hashtable using Add() method
      Langtable.Add("CPP", "C++");
      Langtable.Add("CS", "C#");
      Langtable.Add("JAVA", "JAVA");
      Langtable.Add("PL", "PERL");
      Langtable.Add("JS", "JAVASCRIPT");
      
      //Collection of Hashtable keys
      ICollection keys = Langtable.Keys;

      Console.WriteLine("Language Keys:");
      foreach (String k in keys){
         Console.WriteLine(k);
      }
      Console.ReadKey();
   }
}
Salin selepas log masuk

Seperti yang telah dibincangkan, program di atas mengandungi jadual cincang bahasa pengaturcaraan, dengan kod bahasa sebagai kunci dan namanya sebagai nilai. Kami mula-mula menggunakan objek ICollection untuk mendapatkan semula koleksi kunci daripada jadual cincang. Kemudian kami mengulangi objek ini dan memaparkan kunci satu demi satu.

Output

Language Keys:
PL
JS
CS
JAVA
CPP
Salin selepas log masuk

Jadi program memaparkan kod bahasa (kunci) jadual cincang. Begitu juga, jika kita mahu nilai yang sepadan dengan setiap kunci, kita boleh mencetaknya dengan mengakses jadual cincang dengan kunci yang diberikan. Kami menyerahkan pengubahsuaian ini kepada pembaca.

Oleh itu, kita boleh mendapatkan (access) kunci jadual cincang daripada jadual cincang menggunakan mana-mana dua kaedah yang dibincangkan di atas. Walaupun kedua-dua kaedah adalah mudah, kami terutamanya menggunakan kaedah pertama, yang menggunakan gelung untuk setiap untuk mengulang jadual cincang untuk kebanyakan koleksi.

Dalam artikel seterusnya, kami akan membincangkan lebih banyak operasi Hashtable yang boleh dilakukan dalam C#.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai kunci daripada HashTable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan