C # Hashtable พร้อมตัวอย่าง
Hashtable ใน C # คืออะไร?
ตารางแฮชเป็นคอลเลกชันพิเศษที่ใช้ในการจัดเก็บรายการคีย์-ค่า ดังนั้นแทนที่จะจัดเก็บเพียงค่าเดียว เช่น สแต็ก รายการอาร์เรย์ และคิว ตารางแฮชจะเก็บ 2 ค่า ค่า 2 เหล่านี้ประกอบกันเป็นองค์ประกอบของตารางแฮช
ด้านล่างนี้คือตัวอย่างบางส่วนของค่าของตารางแฮชที่อาจมีลักษณะดังนี้
{ "001" , ".Net" } { "002" , ".C#" } { "003" , "ASP.Net" }
ด้านบนเรามีคู่ค่าคีย์ 3 คู่ คีย์ของแต่ละองค์ประกอบคือ 001, 002 และ 003 ตามลำดับ ค่าของคู่ค่าคีย์แต่ละคู่คือ “สุทธิ.“, “C#” และ “ASP.Net” ตามลำดับ
มาดูการดำเนินการที่มีให้สำหรับคอลเลกชัน Hashtable อย่างละเอียดเพิ่มเติม
คำประกาศของแฮชเทเบิล
การประกาศ Hashtable แสดงอยู่ด้านล่าง Hashtable ถูกสร้างขึ้นด้วยความช่วยเหลือของประเภทข้อมูล Hashtable คำหลัก "ใหม่" ใช้เพื่อสร้างวัตถุของ Hashtable จากนั้นวัตถุจะถูกกำหนดให้กับตัวแปร ht
Hashtable ht = new Hashtable()
การเพิ่มองค์ประกอบลงใน Hashtable
วิธีการเพิ่มใช้ในการเพิ่มองค์ประกอบให้กับ คิว- ไวยากรณ์ทั่วไปของคำสั่งได้รับด้านล่าง
HashTable.add("key","value")
1 ตัวอย่าง:
โปรดจำไว้ว่าแต่ละองค์ประกอบของตารางแฮชประกอบด้วย 2 ค่า ค่าหนึ่งคือคีย์ และอีกค่าคือค่า
ตอนนี้เรามาดูการทำงานในระดับโค้ดกันดีกว่า โค้ดที่กล่าวถึงด้านล่างทั้งหมดจะถูกเขียนลงในแอปพลิเคชันคอนโซลของเรา
รหัสจะถูกเขียนลงในไฟล์ Program.cs ของเรา ในโปรแกรมด้านล่างเราจะเขียนโค้ดเพื่อดูว่าเราสามารถใช้วิธีการที่กล่าวมาข้างต้นได้อย่างไร
สำหรับตอนนี้ในตัวอย่างของเรา เราจะดูว่าเราจะสร้าง hashtable ได้อย่างไร เพิ่มองค์ประกอบลงใน hashtable และแสดงองค์ประกอบเหล่านั้นตามนั้น
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); ICollection keys = ht.Keys; foreach (String k in keys) { Console.WriteLine(ht[k]); } Console.ReadKey(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เราประกาศตัวแปร hashtable โดยใช้ประเภทข้อมูล Hashtable โดยใช้คีย์เวิร์ด "ใหม่" ชื่อของตัวแปรที่กำหนดคือ 'ht'
- จากนั้นเราเพิ่มองค์ประกอบลงในตารางแฮชโดยใช้วิธีเพิ่ม โปรดจำไว้ว่าเราจำเป็นต้องเพิ่มทั้งองค์ประกอบคีย์และค่าเมื่อเพิ่มบางอย่างลงในแฮชเทเบิล
- ไม่มีวิธีโดยตรงในการแสดงองค์ประกอบของตารางแฮช
- ในการแสดง hashtable เราต้องรับรายการคีย์ (001, 002 และ 003) จากตารางแฮชก่อน
- ซึ่งทำได้ผ่านอินเทอร์เฟซ ICollection นี่เป็นประเภทข้อมูลพิเศษที่สามารถใช้เพื่อจัดเก็บคีย์ของคอลเลกชันที่แฮชได้ จากนั้นเราจะกำหนดคีย์ของคอลเลกชันแฮชให้กับตัวแปร 'คีย์'
- ถัดไปสำหรับแต่ละค่าคีย์ เราได้รับค่าที่เกี่ยวข้องใน hashtable โดยใช้คำสั่ง ht[k]
หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้
Output:
มาดูวิธีการเพิ่มเติมสำหรับตารางแฮชกัน
ประกอบด้วยคีย์
วิธีการนี้ใช้เพื่อดูว่ามีคีย์อยู่ใน Hashtable หรือไม่ ด้านล่างนี้คือไวยากรณ์ทั่วไปของคำสั่งนี้ คำสั่งจะคืนค่าเป็นจริงหากมีคีย์อยู่ มิฉะนั้นจะส่งคืนค่าเท็จ
Hashtable.Containskey(key)
ประกอบด้วยค่า
วิธีการนี้ใช้เพื่อดูว่ามีค่าอยู่ใน Hashtable หรือไม่ ด้านล่างนี้คือไวยากรณ์ทั่วไปของคำสั่งนี้ คำสั่งจะส่งกลับค่าจริงหากมีค่าอยู่ มิฉะนั้นจะส่งกลับค่าเท็จ
Hashtable.ContainsValue(value)
2 ตัวอย่าง:
มาเปลี่ยนรหัสในของเรา แอปพลิเคชันคอนโซล เพื่อแสดงให้เห็นว่าเราสามารถใช้เมธอด "Containskey" และ "ContainsValue" ได้อย่างไร
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); Console.WriteLine(ht.ContainsKey("001")); Console.WriteLine(ht.ContainsValue("C#")); Console.ReadKey(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เราใช้เมธอด ประกอบด้วยคีย์ เพื่อดูว่าคีย์นั้นมีอยู่ในแฮชเทเบิลหรือไม่ วิธีนี้จะคืนค่าเป็นจริงหากมีคีย์อยู่ในแฮชเทเบิล วิธีการนี้ควรคืนค่าเป็นจริงเนื่องจากมีคีย์อยู่ในแฮชเทเบิล
- จากนั้นเราใช้เมธอด ประกอบด้วยค่า เพื่อดูว่ามีค่าอยู่ในแฮชเทเบิลหรือไม่ วิธีนี้จะคืนค่า 'จริง' เนื่องจากค่ามีอยู่ในแฮชเทเบิล
หากป้อนโค้ดด้านบนอย่างถูกต้องแล้วและรันโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้
Output:
จากผลลัพธ์ คุณจะเห็นได้อย่างชัดเจนว่าทั้งคีย์และค่าที่กำลังค้นหามีอยู่ในตารางแฮช
สรุป
Hashtable ใช้เพื่อจัดเก็บองค์ประกอบที่ประกอบด้วยคู่ค่าคีย์ ในการเข้าถึงค่าขององค์ประกอบ คุณจำเป็นต้องทราบคีย์ขององค์ประกอบ