डिक्शनरी एलिमेंट का एक संग्रह है। इसमें हर एलिमेंट एक की और एक वैल्यू से मिलकर बनता है। अगर डिक्शनरी के किसी मेथड को कोई की दी जाए, तो वह उससे जुड़ी वैल्यू लौटा देता है। दूसरी भाषाओं में मैप या असोसिएटिव ऐरे जो भूमिका निभाते हैं, वही भूमिका इसकी भी होती है।
डिक्शनरी इस तरह बनाई जा सकती है:
new Dictionary<int, string>();
// Empty dictionary
या
new Dictionary<int, string>
{
[1] = "One",
[2] = "Two"
};
// Or
new Dictionary<int, string>
{
{1, "One"},
{2, "Two"}
};
// 1 => "One", 2 => "Two"
ध्यान दीजिए कि की और वैल्यू के टाइप डिक्शनरी की परिभाषा का ही हिस्सा होते हैं।
डिक्शनरी बन जाने के बाद उसमें एंट्री जोड़ी या हटाई जा सकती हैं। इसके लिए उसके अंदर बने मेथड Add और Remove काम आते हैं।
डिक्शनरी की वैल्यू निकालने या बदलने का काम की के ज़रिए डिक्शनरी में इंडेक्स करके किया जाता है:
var numbers = new Dictionary<int, string>
{
{1, "One"},
{2, "Two"}
};
// Set the value of the element with key 2 to "Deux"
numbers[2] = "Deux";
// Get the value of the element with key 2
numbers[2];
// => "Deux"
कोई वैल्यू डिक्शनरी में मौजूद है या नहीं, यह आप इस तरह जाँच सकते हैं:
var dict = new Dictionary<string, string>{/*...*/};
dict.ContainsKey("some key that exists");
// => true
डिक्शनरी पर एन्यूमरेट करने पर उसके की-वैल्यू जोड़ों पर एन्यूमरेट होता है। डिक्शनरी में ऐसी प्रॉपर्टी भी होती हैं जिनसे उसकी की या वैल्यू पर एन्यूमरेट किया जा सकता है।
इस अभ्यास में आप एक अंतर्राष्ट्रीय डायलिंग कोड डिक्शनरी की मदद से अंतर्राष्ट्रीय डायलिंग कोड का हिसाब रखने वाला कोड लिखेंगे।
इस डिक्शनरी में की (डायलिंग कोड) के लिए एक पूर्णांक और वैल्यू (देश का नाम) के लिए एक स्ट्रिंग इस्तेमाल होती है।
आपके सामने 9 कार्य हैं, जो DialingCodes स्टैटिक क्लास से जुड़े हैं।
(स्टैटिक) मेथड DialingCodes.GetEmptyDictionary() लागू कीजिए, जो एक खाली डिक्शनरी लौटाता है।
DialingCodes.GetEmptyDictionary();
// => empty dictionary
एक पहले से भरी डिक्शनरी मौजूद है, जिसमें ये 3 डायलिंग कोड शामिल हैं: "United States of America", जिसका कोड 1 है; "Brazil", जिसका कोड 55 है; और "India", जिसका कोड 91 है। (स्टैटिक) मेथड DialingCodes.GetExistingDictionary() लागू कीजिए, जो यह पहले से भरी डिक्शनरी लौटाए:
DialingCodes.GetExistingDictionary();
// => 1 => "United States of America", 55 => "Brazil", 91 => "India"
(स्टैटिक) मेथड DialingCodes.AddCountryToEmptyDictionary() लागू कीजिए, जो एक डिक्शनरी बनाता है और उसमें एक डायलिंग कोड और उससे जुड़ा देश का नाम जोड़ता है।
DialingCodes.AddCountryToEmptyDictionary(44, "United Kingdom");
// => 44 => "United Kingdom"
(स्टैटिक) मेथड DialingCodes.AddCountryToExistingDictionary() लागू कीजिए, जो किसी गैर-खाली डिक्शनरी में एक डायलिंग कोड और उससे जुड़ा देश का नाम जोड़ता है।
DialingCodes.AddCountryToExistingDictionary(DialingCodes.GetExistingDictionary(),
44, "United Kingdom");
// => 1 => "United States of America", 44 => "United Kingdom", 55 => "Brazil", 91 => "India"
(स्टैटिक) मेथड DialingCodes.GetCountryNameFromDictionary() लागू कीजिए, जो एक डायलिंग कोड लेता है और उससे जुड़ा देश का नाम लौटाता है। अगर डायलिंग कोड डिक्शनरी में मौजूद नहीं है, तो एक खाली स्ट्रिंग लौटाई जाती है।
DialingCodes.GetCountryNameFromDictionary(
DialingCodes.GetExistingDictionary(), 55);
// => "Brazil"
DialingCodes.GetCountryNameFromDictionary(
DialingCodes.GetExistingDictionary(), 999);
// => string.Empty
(स्टैटिक) मेथड DialingCodes.CheckCodeExists() लागू कीजिए, जो यह जाँचता है कि कोई डायलिंग कोड डिक्शनरी में मौजूद है या नहीं।
DialingCodes.CheckCodeExists(DialingCodes.GetExistingDictionary(), 55);
// => true
(स्टैटिक) मेथड DialingCodes.UpdateDictionary() लागू कीजिए, जो एक डायलिंग कोड लेता है और डिक्शनरी में उससे जुड़े देश के नाम को उस देश के नाम से बदल देता है जो पैरामीटर के रूप में दिया गया है। अगर डायलिंग कोड डिक्शनरी में मौजूद नहीं है, तो डिक्शनरी वैसी ही रहती है।
DialingCodes.UpdateDictionary(
DialingCodes.GetExistingDictionary(), 1, "Les États-Unis");
// => 1 => "Les États-Unis", 55 => "Brazil", 91 => "India"
DialingCodes.UpdateDictionary(
DialingCodes.GetExistingDictionary(), 999, "Newlands");
// 1 => "United States of America", 55 => "Brazil", 91 => "India"
(स्टैटिक) मेथड DialingCodes.RemoveCountryFromDictionary() लागू कीजिए, जो एक डायलिंग कोड लेता है और डिक्शनरी से उससे जुड़ा रिकॉर्ड, यानी डायलिंग कोड + देश का नाम, हटा देता है।
DialingCodes.RemoveCountryFromDictionary(
DialingCodes.GetExistingDictionary(), 91);
// => 1 => "United States of America", 55 => "Brazil"
(स्टैटिक) मेथड DialingCodes.FindLongestCountryName() लागू कीजिए, जो डिक्शनरी में संग्रहीत सबसे लंबे नाम वाले देश का नाम लौटाता है।
DialingCodes.FindLongestCountryName(
DialingCodes.GetExistingDictionary());
// => "United States of America"
Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।