तात्कालिकता पर C # शब्दकोश में मान कैसे डालें?


149

क्या कोई जानता है कि क्या कोई तरीका है जब मैं इसे बनाते समय C # शब्दकोश में मान डाल सकता हूं? मैं कर सकता हूँ, लेकिन dict.Add(int, "string")अगर वहाँ कुछ और अधिक कुशल है जैसे प्रत्येक आइटम के लिए करना चाहते हैं:

Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};

जवाबों:


199

यहाँ कैसे करना है इसके बारे में पूरा पृष्ठ है:

http://msdn.microsoft.com/en-us/library/bb531208.aspx

उदाहरण:

निम्नलिखित कोड उदाहरण में, एक Dictionary<TKey, TValue>प्रकार के उदाहरणों के साथ आरंभ किया गया है StudentName:

var students = new Dictionary<int, StudentName>()
{
    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};

3
यह केवल .NET 3.5 कंपाइलर पर काम करता है ... बस इसे ध्यान में रखें।
एड्रियन गोडोंग

@ kd7iwp - कोई बात नहीं, इस साइट के फ़ंक्शन का हिस्सा है ताकि वैकल्पिक खोज शब्द कुछ उपयोगी के लिए रूट किए जा सकें।
डैनियल इयरविकर

हाँ, यह माइक्रोसॉफ्ट के साथ बहुत ज्यादा दिया गया है। वे वर्षों से पिछड़े-अनुकूलता के लिए प्रतिबद्ध हैं।
PRMan



10

आप किसी भी IEnumerable ऑब्जेक्ट से किसी भी कुंजी मान जोड़े डालने के लिए लैम्ब्डा अभिव्यक्तियों का उपयोग कर सकते हैं। कुंजी और मान किसी भी प्रकार आप चाहते हैं हो सकता है।

Dictionary<int, string> newDictionary = 
                 SomeList.ToDictionary(k => k.ID, v => v.Name);

मुझे लगता है कि बहुत आसान है क्योंकि आप IE में हर जगह IEnumerable वस्तुओं का उपयोग करते हैं

उम्मीद है की वो मदद करदे!!!

बालक।


7

आप किसी शब्दकोश को त्वरित कर सकते हैं और उसमें इस तरह से आइटम जोड़ सकते हैं:

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };

7

बस इसलिए आप C # 6 के रूप में जानते हैं कि अब आप इसे इस प्रकार शुरू कर सकते हैं

var students = new Dictionary<int, StudentName>()
{
    [111] = new StudentName {FirstName="Sachin", LastName="Karnik", ID=211},
    [112] = new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317},
    [113] = new StudentName {FirstName="Andy", LastName="Ruth", ID=198}
};

बहुत क्लीनर :)


-1

उम्मीद है कि यह पूरी तरह से काम करेगा।

Dictionary<string, double> D =new Dictionary<string, double>(); D.Add("String", 17.00);


नमस्ते, एसओ में आपका स्वागत है! मूल रूप से इस प्रश्न को पूछने वाले ने विशेष रूप से कहा कि वे .Add(int, "string")किसी शब्दकोश में मूल्यों को जोड़ने की विधि नहीं करना चाहते हैं । क्षमा करें, लेकिन यह प्रश्न का उत्तर नहीं देता है।
Kezz101

-2

यह आमतौर पर अनुशंसित नहीं है लेकिन अनिश्चित संकटों के समय में आप इसका उपयोग कर सकते हैं

Dictionary<string, object> jsonMock = new Dictionary<string, object>() { { "object a", objA }, { "object b", objB } };

// example of unserializing
ClassForObjectA anotherObjA = null;
if(jsonMock.Contains("object a")) {
    anotherObjA = (ClassForObjA)jsonMock["object a"];
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.