คลาส HybridDictionary นำ IDictionary ไปใช้โดยใช้ ListDictionary ในขณะที่คอลเล็กชันมีขนาดเล็ก จากนั้นเปลี่ยนเป็น Hashtable เมื่อคอลเล็กชันมีขนาดใหญ่
ต่อไปนี้เป็นคุณสมบัติของคลาส HybridDictionary -
Sr.No | คุณสมบัติ &คำอธิบาย |
---|---|
1 | นับ รับจำนวนคู่คีย์/ค่าที่มีอยู่ใน HybridDictionary |
2 | IsFixedSize รับค่าที่ระบุว่า HybridDictionary มีขนาดคงที่หรือไม่ |
3 | เป็นแบบอ่านอย่างเดียว รับค่าที่ระบุว่า HybridDictionary เป็นแบบอ่านอย่างเดียวหรือไม่ |
4 | ซิงโครไนซ์ รับค่าที่ระบุว่า HybridDictionary ซิงโครไนซ์หรือไม่ (เธรดปลอดภัย) |
5 | รายการ[วัตถุ] รับหรือตั้งค่าที่เกี่ยวข้องกับคีย์ที่ระบุ |
6 | กุญแจ รับ ICollection ที่มีคีย์ใน HybridDictionary |
7 | SyncRoot รับอ็อบเจ็กต์ที่สามารถใช้เพื่อซิงโครไนซ์การเข้าถึง HybridDictionary |
8 | ค่า รับ ICollection ที่มีค่าใน HybridDictionary |
ต่อไปนี้เป็นวิธีการบางส่วนของคลาส HybridDictionary -
ซีเนียร์ | วิธีการ &คำอธิบาย |
---|---|
1 | เพิ่ม (วัตถุ, วัตถุ) เพิ่มรายการด้วยคีย์และค่าที่ระบุลงใน HybridDictionary |
2 | ล้าง() ลบรายการทั้งหมดออกจาก HybridDictionary |
3 | ประกอบด้วย (วัตถุ) กำหนดว่า HybridDictionary มี key.p> . เฉพาะหรือไม่ |
4 | CopyTo(Array, Int32) คัดลอกรายการ HybridDictionary ไปยังอินสแตนซ์ onedimensionalArray ที่ดัชนีที่ระบุ |
5 | เท่ากับ (วัตถุ) กำหนดว่าวัตถุที่ระบุเท่ากับวัตถุปัจจุบันหรือไม่ (สืบทอดจากวัตถุ) |
6 | GetEnumerator() ส่งกลับ IDictionaryEnumerator ที่วนซ้ำผ่าน HybridDictionary |
7 | GetHashCode() ทำหน้าที่เป็นฟังก์ชันแฮชเริ่มต้น (สืบทอดจาก Object) |
8 | GetType() รับประเภทของอินสแตนซ์ปัจจุบัน (สืบทอดจาก Object) |
ในการนับจำนวนคู่คีย์/ค่าใน HybridDictionary รหัสจะเป็นดังนี้ -
ตัวอย่าง
เรามาดูตัวอย่างกัน −
using System; using System.Collections; using System.Collections.Specialized; public class Demo { public static void Main() { HybridDictionary dict1 = new HybridDictionary(); dict1.Add("A", "SUV"); dict1.Add("B", "MUV"); dict1.Add("C", "AUV"); Console.WriteLine("HybridDictionary1 elements..."); foreach(DictionaryEntry d in dict1) { Console.WriteLine(d.Key + " " + d.Value); } Console.WriteLine("Count of Key/value pairs in Dictionary1 = "+dict1.Count); HybridDictionary dict2 = new HybridDictionary(); dict2.Add("1", "One"); dict2.Add("2", "Two"); dict2.Add("3", "Three"); dict2.Add("4", "Four"); dict2.Add("5", "Five"); dict2.Add("6", "Six"); Console.WriteLine("\nHybridDictionary2 elements..."); foreach(DictionaryEntry d in dict2) { Console.WriteLine(d.Key + " " + d.Value); } Console.WriteLine("Count of Key/value pairs in Dictionary2 = "+dict1.Count); dict2.Clear(); Console.WriteLine("Count of Key/value pairs in Dictionary2 (Updated) = "+dict2.Count); } }
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
HybridDictionary1 elements... A SUV B MUV C AUV Count of Key/value pairs in Dictionary1 = 3 HybridDictionary2 elements... 1 One 2 Two 3 Three 4 Four 5 Five 6 Six Count of Key/value pairs in Dictionary2 = 3 Count of Key/value pairs in Dictionary2 (Updated) = 0
เพื่อตรวจสอบว่า HybridDictionary มีการซิงโครไนซ์หรือไม่ รหัสจะเป็นดังนี้ −
ตัวอย่าง
using System; using System.Collections; using System.Collections.Specialized; public class Demo { public static void Main() { HybridDictionary dict1 = new HybridDictionary(); dict1.Add("A", "Books"); dict1.Add("B", "Electronics"); dict1.Add("C", "Smart Wearables"); dict1.Add("D", "Pet Supplies"); dict1.Add("E", "Clothing"); dict1.Add("F", "Footwear"); Console.WriteLine("HybridDictionary1 elements..."); foreach(DictionaryEntry d in dict1) { Console.WriteLine(d.Key + " " + d.Value); } Console.WriteLine("Is the HybridDictionary1 having fixed size? = "+dict1.IsFixedSize); Console.WriteLine("If HybridDictionary1 read-only? = "+dict1.IsReadOnly); Console.WriteLine("Is HybridDictionary1 synchronized = "+dict1.IsSynchronized); HybridDictionary dict2 = new HybridDictionary(); dict2.Add("1", "One"); dict2.Add("2", "Two"); dict2.Add("3", "Three"); dict2.Add("4", "Four"); dict2.Add("5", "Five"); dict2.Add("6", "Six"); Console.WriteLine("\nHybridDictionary2 elements..."); foreach(DictionaryEntry d in dict2) { Console.WriteLine(d.Key + " " + d.Value); } Console.WriteLine("Is HybridDictionary1 equal to HybridDictionary2? = "+(dict1.Equals(dict2))); Console.WriteLine("Is the HybridDictionary2 having fixed size? = "+dict2.IsFixedSize); Console.WriteLine("If HybridDictionary2 read-only? = "+dict2.IsReadOnly); Console.WriteLine("Is HybridDictionary2 synchronized = "+dict2.IsSynchronized); } }
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
HybridDictionary1 elements... A Books B Electronics C Smart Wearables D Pet Supplies E Clothing F Footwear Is the HybridDictionary1 having fixed size? = False If HybridDictionary1 read-only? = False Is HybridDictionary1 synchronized = False HybridDictionary2 elements... 1 One 2 Two 3 Three 4 Four 5 Five 6 Six Is HybridDictionary1 equal to HybridDictionary2? = False Is the HybridDictionary2 having fixed size? = False If HybridDictionary2 read-only? = False Is HybridDictionary2 synchronized = False