Koleksi jadual cincang dalam C# ialah koleksi bukan generik pasangan nilai kunci yang disusun berdasarkan kod cincang kunci. Kekunci digunakan untuk mengakses elemen dalam koleksi jadual cincang. Hashing membantu kami mendapatkan semula data dengan cekap dan menghapuskan keperluan untuk teknik carian data yang mahal. Teknik pencincangan menggunakan kunci itu sendiri untuk mencari data. Kekunci jadual cincang tidak boleh diubah dan entri pendua tidak dibenarkan dalam jadual cincang.
Kelas Hashtable ditakrifkan dalam ruang nama System.Collections dan menyediakan perpustakaan kelas asas untuk koleksi jadual hash dalam C#. Kelas Hashtable ini digunakan untuk mencipta koleksi pasangan nilai kunci yang disimpan dalam jadual cincang. Pencarian untuk kunci tertentu dioptimumkan dengan mengira kod cincang kunci dan menyimpannya dalam bakul lain. Apabila kita mengakses nilai daripada jadual cincang, ia sepadan dengan kod cincang dengan kunci yang ditentukan.
Dalam tutorial ini, kita akan membincangkan cara untuk menggantikan item atau elemen dalam jadual cincang dengan item atau elemen daripada jadual cincang yang lain.
Kelas Hashtable yang dibincangkan di atas menyediakan pembina untuk mencipta objek Hashtable dan kaedah untuk menambah, mengalih keluar elemen dan menyemak sama ada unsur, kunci atau nilai wujud dalam jadual hash. Ia juga menyediakan sifat untuk menyemak sama ada jadual hash kosong, mengira bilangan elemen dalam jadual hash, dsb.
Tetapi ia tidak membenarkan kaedah kami menggantikan keseluruhan item jadual hash daripada jadual hash lain. Kita boleh menggantikan item individu dengan menggantikan nilai.
Untuk menggantikan kandungan keseluruhan jadual cincang dengan kandungan jadual cincang yang lain, biasanya kami melingkari keseluruhan jadual cincang kedua dan menggantikan kandungan jadual cincang pertama dengan kandungan jadual cincang kedua .
Kami akan menggunakan kaedah yang ditunjukkan di bawah.
foreach (DictionaryEntry item in secondHashtable) { firstHashtable[item.Key] = item.Value; Console.WriteLine("{0} ({1}) ", item.Key, item.Value); }
Pertama, kami mengulangi jadual cincang kedua dan menggantikan pasangan nilai kunci jadual cincang pertama dengan setiap pasangan nilai kunci bagi jadual cincang kedua.
Keseluruhan program untuk melaksanakan kaedah ini ditunjukkan di bawah.
using System; using System. Collections; class MyHashTable { // Main Method static public void Main() { // Create hashtable using the default constructor Hashtable indianNumberSystem = new Hashtable(); //add a key/value pair using the Add() method indianNumberSystem.Add(1,"Ones"); indianNumberSystem.Add(10,"Tens"); indianNumberSystem.Add(100,"Hundred"); indianNumberSystem.Add(1000,"Thousand"); Console.WriteLine("Contents of indianNumberSystem hashtable:"); foreach(DictionaryEntry ele1 in indianNumberSystem){ Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value); } Hashtable langCodes = new Hashtable(); langCodes.Add("C++","CPlusPlus"); langCodes.Add("C#","CSharp"); langCodes.Add("Java","Java"); langCodes.Add("PL","Perl"); Console.WriteLine("Contents of langCodes Hashtable:"); foreach(DictionaryEntry ele1 in langCodes){ Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value); } Console.WriteLine("After Replacing with langCodes, indianNumberSystem: "); foreach (DictionaryEntry item in langCodes) { indianNumberSystem[item.Key] = item.Value; Console.WriteLine("{0} ({1}) ", item.Key, item.Value); } } }
Di sini kami mempunyai dua jadual cincang, indianNumberSystem dan langCodes. Kami mengisi dua jadual hash dengan nilai dan kemudian memaparkan kandungannya. Kami kemudiannya mengulangi jadual cincang langCodes dan menggantikan setiap elemen jadual cincang indianNumberSystem dengan elemen jadual cincang langCodes.
Output program ini ditunjukkan di bawah.
Contents of indianNumberSystem hashtable: 1000 (Thousand) 10 (Tens) 100 (Hundred) 1 (Ones) Contents of langCodes Hashtable: Java (Java) C# (CSharp) PL (Perl) C++ (CPlusPlus) After Replacing with langCodes, indianNumberSystem: Java (Java) C# (CSharp) PL (Perl) C++ (CPlusPlus)
Kita dapat lihat daripada output bahawa selepas penggantian, kandungan indianNumberSystem digantikan dengan kandungan langCodes.
Sekarang mari kita lihat contoh seterusnya.
Dalam contoh ini, kita akan mempunyai dua jadual cincang: indianNumberSystem dan numSys. Di sini kami tidak mengisi jadual hash indianNumberSystem. Kami hanya mencipta objek. Nilai berikut telah ditambahkan pada jadual cincang numSys menggunakan kaedah Tambah.
1 |
satu |
10 |
十 |
100 |
Seratus |
1000 |
Ribuan |
Program lengkap untuk contoh ini ditunjukkan di bawah.
using System; using System. Collections; class MyHashTable { // Main Method static public void Main() { // Create hashtable using the default constructor Hashtable indianNumberSystem = new Hashtable(); Hashtable numSys = new Hashtable(); numSys.Add(1,"Ones"); numSys.Add(10,"Tens"); numSys.Add(100,"Hundred"); numSys.Add(1000,"Thousand"); Console.WriteLine("Contents of numSys Hashtable:"); foreach(DictionaryEntry ele1 in numSys){ Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value); } Console.WriteLine("After Replacing with numSys, indianNumberSystem: "); foreach (DictionaryEntry item in numSys) { indianNumberSystem[item.Key] = item.Value; Console.WriteLine("{0} ({1}) ", item.Key, item.Value); } } }
Di sini kami menggunakan kaedah yang sama seperti program pertama, cuma bezanya jadual hash pertama kosong. Kami kemudian terus menggantikan atau mengalihkan item jadual cincang kedua ke dalam jadual cincang pertama.
Output program ini diberikan di bawah.
Contents of numSys Hashtable: 1000 (Thousand) 10 (Tens) 100 (Hundred) 1 (Ones) After Replacing with numSys, indianNumberSystem: 1000 (Thousand) 10 (Tens) 100 (Hundred) 1 (Ones)
Seperti yang ditunjukkan oleh output program, kandungan jadual numSys kini adalah kandungan indianNumberSystem.
Jadi, dengan menggunakan gelung mudah dan mengulangi jadual cincang kita boleh menggantikan item di dalamnya dengan jadual cincang yang lain.
Atas ialah kandungan terperinci Program C# untuk menggantikan item dalam satu jadual cincang dengan jadual cincang yang lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!