Hashtable.Count प्रॉपर्टी का उपयोग करके की/वैल्यू पेयर्स की संख्या प्राप्त करें।
उदाहरण 1: बेसिक काउंट
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable();
hash.Add("A", "SUV");
hash.Add("B", "MUV");
hash.Add("C", "AUV");
Console.WriteLine("Hashtable elements...");
foreach (DictionaryEntry d in hash) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Count of Key/value pairs = " + hash.Count); // 3
hash.Add("D", "Utility Vehicle");
hash.Add("E", "Convertible");
Console.WriteLine("Count of Key/value pairs (Updated) = " + hash.Count); // 5
}
}
आउटपुट
Hashtable elements...
C AUV
A SUV
B MUV
Count of Key/value pairs = 3
Count of Key/value pairs (Updated) = 5
उदाहरण 2: कैपेसिटी और एन्यूमरेटर के साथ
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable(10); // प्रारंभिक कैपेसिटी
hash.Add("1", "A");
hash.Add("2", "B");
hash.Add("3", "C");
hash.Add("4", "D");
hash.Add("5", "E");
hash.Add("6", "F");
hash.Add("7", "G");
hash.Add("8", "H");
hash.Add("9", "I");
hash.Add("10", "J");
Console.WriteLine("Hashtable Key and Value pairs...");
foreach (DictionaryEntry entry in hash) {
Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
}
Console.WriteLine("Is the Hashtable having fixed size? = " + hash.IsFixedSize);
Console.WriteLine("Count of key/value pairs in Hashtable = " + hash.Count);
Console.WriteLine("\nEnumerator to iterate through the Hashtable...");
IDictionaryEnumerator demoEnum = hash.GetEnumerator();
while (demoEnum.MoveNext()) {
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}
}
आउटपुट
Hashtable Key and Value pairs...
10 and J
1 and A
2 and B
3 and C
4 and D
5 and E
6 and F
7 and G
8 and H
9 and I
Is the Hashtable having fixed size? = False
Count of key/value pairs in Hashtable = 10
Enumerator to iterate through the Hashtable...
Key = 10, Value = J
Key = 1, Value = A
Key = 2, Value = B
Key = 3, Value = C
Key = 4, Value = D
Key = 5, Value = E
Key = 6, Value = F
Key = 7, Value = G
Key = 8, Value = H
Key = 9, Value = I
महत्वपूर्ण बिंदु
Countप्रॉपर्टी O(1) है - तत्काल लौटाता हैHashtableनॉन-जेनेरिक है - की और वैल्यू दोनोंobjectहैं- कीज़ यूनिक होनी चाहिए - डुप्लीकेट की
ArgumentExceptionफेंकती है IsFixedSizeहमेशाfalseलौटाता है- ऑर्डर गारंटीड नहीं है (हैश-आधारित)
आधुनिक विकल्प: Dictionary<TKey, TValue>
// जेनेरिक, टाइप-सेफ, तेज़
var dict = new Dictionary<string, string>();
dict.Add("A", "SUV");
dict.Add("B", "MUV");
int count = dict.Count; // समान API
// थ्रेड-सेफ संस्करण
var concurrentDict = new ConcurrentDictionary<string, string>();
Hashtable vs Dictionary तुलना
| विशेषता | Hashtable | Dictionary<TKey,TValue> |
|---|---|---|
| टाइप सेफ्टी | नहीं (object) | हाँ (जेनेरिक) |
| पेरफॉरमेंस | बॉक्सिंग/अनबॉक्सिंग ओवरहेड | बेहतर (कोई बॉक्सिंग नहीं) |
| नल की | अनुमत | अनुमत नहीं (डिफ़ॉल्ट) |
| थ्रेड सेफ्टी | SyncRoot के माध्यम से | नहीं (ConcurrentDictionary उपयोग करें) |