StringDictionary
.NET 1.1 से आता है और लागू करता IEnumerable
Dictionary<string, string>
.NET 2.0 से आता है और लागू करता है IDictionary<TKey, TValue>,IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
IgnoreCase केवल StringDictionary
Dictionary<string, string>
में कुंजी के लिए सेट कर दिया जाता LINQ
के लिए अच्छा है
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("ITEM-1", "VALUE-1");
var item1 = dictionary["item-1"]; // throws KeyNotFoundException
var itemEmpty = dictionary["item-9"]; // throws KeyNotFoundException
StringDictionary stringDictionary = new StringDictionary();
stringDictionary.Add("ITEM-1", "VALUE-1");
var item1String = stringDictionary["item-1"]; //return "VALUE-1"
var itemEmptystring = stringDictionary["item-9"]; //return null
bool isKey = stringDictionary.ContainsValue("VALUE-1"); //return true
bool isValue = stringDictionary.ContainsValue("value-1"); //return false
क्या दोनों के बीच कोई प्रदर्शन अंतर है? – thecoop
आपको यह देखने के लिए बेंचमार्क करना चाहिए कि आपकी विशेष स्थिति के लिए कौन सा बेहतर प्रदर्शन करता है। मुझे एक उल्लेखनीय प्रदर्शन अंतर की उम्मीद नहीं है। मैं सभी नए कोड के लिए 'शब्दकोश <स्ट्रिंग, स्ट्रिंग>' का उपयोग करने की अनुशंसा करता हूं (जब तक आपको 1.1 को लक्षित करने की आवश्यकता न हो)। –
@thecoop अब मेरे पक्ष से मौजूद कोई हार्ड डेटा नहीं है, लेकिन एक बार जब मैंने स्पीड 'स्ट्रिंग डिक्शनरी' के लिए परीक्षण किया था तो खराब प्रदर्शन किया गया था (हालांकि सभी जो अधिकतर बात नहीं करते हैं)। वास्तव में ईमानदार होने के लिए, पहले मुझे लगता था कि 'स्ट्रिंग डिक्शनरी' कुछ प्रकार का विशेष संग्रह था, जो 'स्ट्रिंग' कुंजी था, और मेरे परीक्षण में और भी खराब होने पर आश्चर्यचकित चीजों के लिए, और मैंने इसे केवल गोग किया सीखने के लिए यह nongeneric – nawfal