C#中Dictionary<string,string>的初始化 两种方式不同

以下两种初始化Dictionary的方法有什么不同?
var obj = new Dictionary<string, string>() {
{ "FirstName" , "Eric"}
};

        var obj1 = new Dictionary<string, string>
        {
            ["FirstName"] = "Eric" 
        };

第一个等价于
new Dictionary<string, string>().Add("FirstName", "Eric");

第二个等价于
new Dictionary<string, string>()["FirstName"] = "Eric";

这两个行为是不一样的。
例如,下面这段代码,前面出错,后面不出错的。

    var obj = new Dictionary<string, string>()
    {
        {"FirstName", "Eric"},
        { "FirstName" , "Eric2"}
    };

    var obj1 = new Dictionary<string, string>
    {
        ["FirstName"] = "Eric",
        ["FirstName"] = "Eric2"
    };
原文地址:https://www.cnblogs.com/sunny3158/p/13039645.html