为什么值以“ i = 2”而不是2出现

时间:2018-08-24 11:35:54

标签: c# dictionary

在下面的代码中,为什么Value以“ i = 2”而不是2出现。

enter image description here

var dictionary = new Dictionary<string, List<object>>();

        for (int i = 1; i <= 2; i++)
        {
            if (dictionary.Keys.Contains("Key1"))
            {
                dictionary["Key1"].Add(new { i });
            }
            else
            {
                dictionary.Add("Key1", new List<object> { i});
            }
        }

1 个答案:

答案 0 :(得分:3)

您的代码有很多问题。首先,是您看到的“奇怪”输出。您的new { i }使用值为i的属性2创建了一个新的匿名类型(从变量名推断出属性名的i。它等于{{ 1}})。

我建议使用:

new { i = i }