คลาส 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