OrderedDictionary क्लास (System.Collections.Specialized) की-वैल्यू पेयर्स का संग्रह है जो इंसर्शन क्रम बनाए रखता है। यह कुंजी द्वारा लुकअप (हैशटेबल की तरह) और इंडेक्स द्वारा एक्सेस (लिस्ट की तरह) दोनों प्रदान करता है।
उदाहरण 1: OrderedDictionary बनाना, तत्व जोड़ना और हटाना
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
OrderedDictionary dict = new OrderedDictionary();
dict.Add("A", "Books");
dict.Add("B", "Electronics");
dict.Add("C", "Smart Wearables");
dict.Add("D", "Pet Supplies");
dict.Add("E", "Clothing");
dict.Add("F", "Footwear");
Console.WriteLine("OrderedDictionary तत्व (इंसर्शन क्रम)...");
foreach (DictionaryEntry entry in dict) {
Console.WriteLine(entry.Key + " " + entry.Value);
}
Console.WriteLine("\nतत्वों की संख्या = " + dict.Count);
// कुंजी द्वारा हटाएं
dict.Remove("E");
Console.WriteLine("हटाने के बाद संख्या = " + dict.Count);
// इंडेक्स द्वारा एक्सेस
Console.WriteLine("इंडेक्स 0 पर वैल्यू = " + dict[0]);
Console.WriteLine("कुंजी 'B' की वैल्यू = " + dict["B"]);
}
}
आउटपुट
OrderedDictionary तत्व (इंसर्शन क्रम)...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
तत्वों की संख्या = 6
हटाने के बाद संख्या = 5
इंडेक्स 0 पर वैल्यू = Books
कुंजी 'B' की वैल्यू = Electronics
उदाहरण 2: Keys संग्रह कॉपी करना
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
OrderedDictionary dict = new OrderedDictionary();
dict.Add("1", "One");
dict.Add("2", "Two");
dict.Add("3", "Three");
dict.Add("4", "Four");
dict.Add("5", "Five");
dict.Add("6", "Six");
dict.Add("7", "Seven");
dict.Add("8", "Eight");
// Keys संग्रह प्राप्त करें और ऐरे में कॉपी करें
ICollection keys = dict.Keys;
string[] keyArray = new string[dict.Count];
keys.CopyTo(keyArray, 0);
Console.WriteLine("कुंजियाँ प्रदर्शित...");
for (int i = 0; i < dict.Count; i++) {
Console.WriteLine(keyArray[i]);
}
}
}
आउटपुट
कुंजियाँ प्रदर्शित...
1
2
3
4
5
6
7
8
OrderedDictionary मुख्य विशेषताएं
| विशेषता | विवरण |
|---|---|
| क्रम | इंसर्शन क्रम बनाए रखता है |
| कुंजी एक्सेस | O(1) औसत (हैश-आधारित) |
| इंडेक्स एक्सेस | O(1) - dict[index] या dict.GetKey(index) |
| कुंजी प्रकार | object (नॉन-जेनेरिक) |
| मान प्रकार | object (नॉन-जेनेरिक) |
| डुप्लिकेट कुंजियाँ | नहीं |
| नल कुंजी | नहीं |
मुख्य मेथड्स और प्रॉपर्टीज़
Add(key, value)- अंत में जोड़ेंRemove(key)- कुंजी द्वारा हटाएंRemoveAt(index)- इंडेक्स द्वारा हटाएंClear()- सभी हटाएंContains(key)- कुंजी मौजूदगी जांचेंIndexOfKey(key)- कुंजी का इंडेक्स प्राप्त करेंIndexOfValue(value)- वैल्यू का पहला इंडेक्स प्राप्त करें[key]इंडेक्सर - कुंजी द्वारा वैल्यू प्राप्त/सेट करें[index]इंडेक्सर - इंडेक्स द्वारा वैल्यू प्राप्त/सेट करेंKeys,Values- कुंजी/वैल्यू संग्रहAsReadOnly()- रीड-ओनली रैपरCopyTo(Array, index)- DictionaryEntry[] ऐरे में कॉपी (रिवर्स क्रम!)
आधुनिक विकल्प
नए कोड के लिए, निम्न विकल्पों पर विचार करें:
Dictionary<TKey, TValue>+ अलगList<TKey>ऑर्डर के लिएSystem.Collections.Generic.OrderedDictionary<TKey, TValue>(.NET 6+ में उपलब्ध नहीं, थर्ड-पार्टी लाइब्रेरीज़ उपयोग करें)ImmutableDictionary<TKey, TValue>(इम्यूटेबल, ऑर्डर्ड)