मैं निम्नलिखित पर ठोकर खाई और मैं सोच रहा हूं कि इसने एक सिंटैक्स त्रुटि क्यों नहीं बढ़ाई।
var dict = new Dictionary<string, object>
{
["Id"] = Guid.NewGuid(),
["Tribes"] = new List<int> { 4, 5 },
["MyA"] = new Dictionary<string, object>
{
["Name"] = "Solo",
["Points"] = 88
}
["OtherAs"] = new List<Dictionary<string, object>>
{
new Dictionary<string, object>
{
["Points"] = 1999
}
}
};
ध्यान दें कि "MyA", और "OtherAs" के बीच "," गायब है।
यह वह जगह है जहाँ भ्रम होता है:
- कोड संकलित करता है।
- अंतिम शब्दकोश "तानाशाह" में केवल तीन तत्व शामिल हैं: "आईडी", "ट्राइब्स", और "माइए"।
- "MyA" को छोड़कर सभी के लिए मान सही हैं,
- "MyA" "अन्य" के लिए घोषित मूल्य लेता है, जबकि इसके मूल मूल्य को अनदेखा किया जाता है।
यह अवैध क्यों नहीं है? क्या यह डिजाइन द्वारा है?
<string, string> and modify Points to
"88" में बदलते हैं, तो आप एक कंपाइलर एरर प्राप्त करते हैं, "implicitly convert type 'System.Collections.Generic.List <System.Collections.Generic.Dictionary <string, object' to 'to' string" टाइप करें। " जो वास्तव में मुझे जवाब जानने में मदद करता है!
var test = new Dictionary<string, object> { ["Name"] = "Solo", ["Points"] = 88 }["OtherAs"] = new List<Dictionary<string, object>> { new Dictionary<string, object> { ["Points"] = 1999 } };
करेंगे तो आगे बताएंगे।
OtherAs
कुंजी के रूप में जोड़ा जाएगाMyA
। (नाम = सोलो, अंक = 88 प्लस अन्य = सूची <शब्दकोश <स्ट्रिंग, ऑब्जेक्ट >>) इसके अलावा तो कभी भी इसे असाइन नहीं करता है । इसके बजाय यह dicts की सूची रखता है, अब केवल एकल अंक = 1999 मेंMyA
स्लॉट में प्रवेश होता है, जो यह सोचता है कि वहाँ क्या होगा।