c# - शब्दकोश प्रारंभकर्ताओं को शब्दकोश प्रारंभकर्ताओं पर क्या लाभ मिलता है?




dictionary collections (2)

जबकि आप संग्रह प्रारंभकर्ताओं के साथ एक शब्दकोश प्रारंभ कर सकते हैं , यह काफी बोझिल है। विशेष रूप से कुछ ऐसा है जो सिंटेक्टिक चीनी माना जाता है।

शब्दकोश प्रारंभकर्ता बहुत साफ हैं:

var myDict = new Dictionary<int, string>
{
    [1] = "Pankaj",
    [2] = "Pankaj",
    [3] = "Pankaj"
};

अधिक महत्वपूर्ण बात यह है कि ये प्रारंभकर्ता केवल शब्दकोशों के लिए नहीं हैं, इन्हें किसी इंडेक्सर का समर्थन करने वाले किसी ऑब्जेक्ट के लिए उपयोग किया जा सकता है, उदाहरण के लिए List<T> :

var array = new[] { 1, 2, 3 };
var list = new List<int>(array) { [1] = 5 };
foreach (var item in list)
{
    Console.WriteLine(item);
}

आउटपुट:

1
5
3

हाल ही में सी # 6.0 में नया क्या है इसके बारे में बहुत सी बात हुई है
फीचर के बारे में सबसे ज्यादा बातों में से एक सी # 6.0 में Dictionary प्रारंभकर्ताओं का उपयोग कर रहा है
लेकिन प्रतीक्षा करें कि हम संग्रह आरंभ करने के लिए संग्रह प्रारंभकर्ताओं का उपयोग कर रहे हैं और .NET 4.0 और .NET 4.5 में भी एक Dictionary शुरू कर सकते हैं (पुराने संस्करण के बारे में नहीं जानते)

Dictionary<int, string> myDict = new Dictionary<int, string>() {
    { 1,"Pankaj"},
    { 2,"Pankaj"},
    { 3,"Pankaj"}
};

तो सी # 6.0 में नया क्या है, सी # 6.0 में किस शब्दकोश प्रारंभकर्ता के बारे में बात कर रहे हैं


नया इस तरह एक शब्दकोश बना रहा है

Dictionary<int, string> myDict = new Dictionary<int, string>() {
    [1] = "Pankaj",
    [2] = "Pankaj",
    [3] = "Pankaj"
};

<index> = <value> की शैली के साथ

अप्रचलित: स्ट्रिंग अनुक्रमित सदस्य वाक्यविन्यास (जैसा टिप्पणियों में बताया गया है)

Dictionary<int, string> myDict = new Dictionary<int, string>() {
        $1 = "Pankaj",
        $2 = "Pankaj",
        $3 = "Pankaj"
    };

एसी # 6.0 भाषा पूर्वावलोकन से लिया गया

$ ऑपरेटर को समझने के लिए, AreEqual फ़ंक्शन कॉल पर एक नज़र डालें। अंतर्निहित डेटा टाइप पर "$ बूलियन" के डिक्शनरी सदस्य आमंत्रण पर ध्यान दें- भले ही शब्दकोश पर कोई "बूलियन" सदस्य न हो। इस तरह के एक स्पष्ट सदस्य की आवश्यकता नहीं है क्योंकि $ ऑपरेटर शब्दकोश पर अनुक्रमित सदस्य को आमंत्रित करता है, जो बिल्डिंगडेटाटाइप ["बूलियन"] को कॉल करने के बराबर है।





collection-initializer