ฉันสะดุดต่อไปนี้และฉันสงสัยว่าทำไมมันไม่ทำให้เกิดข้อผิดพลาดทางไวยากรณ์
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"
นี่คือสิ่งที่เกิดความสับสน:
- รหัสรวบรวม
- พจนานุกรมสุดท้าย "dict" มีเพียงสามองค์ประกอบ: "Id", "Tribes" และ "MyA"
- ค่าทั้งหมดยกเว้น "MyA" ถูกต้อง
- "MyA" รับค่าที่ประกาศสำหรับ "OtherAs" ในขณะที่ค่าดั้งเดิมจะถูกละเว้น
ทำไมจึงไม่ผิดกฎหมาย นี่เป็นการออกแบบหรือเปล่า?
<string, string> and modify Points to "88" `คุณจะได้รับข้อผิดพลาดของคอมไพเลอร์" ไม่สามารถแปลงประเภท 'System.Collections.Generic.List <System.Collections.Generic.Dictionary <string, object >>' เป็น '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พจนานุกรม (ชื่อ = Solo จุด = 88 บวก OtherAs = รายการ <พจนานุกรม <สตริงวัตถุ >>) ยกเว้นมันก็ไม่เคยกำหนดว่ามัน แต่จะวางรายการของ dicts ตอนนี้มีเพียงรายการ Points = 1999 เดียวในMyAช่องที่แทนที่สิ่งที่ใครคิดว่ามีอยู่