向Dictionary <int,class>添加值不是一次全部

时间:2016-08-26 04:11:24

标签: c# dictionary

我试图将数据存储在字典中,其中键是ID,值是类类型。类属性并非全部同时添加,所以我还没有使用构造函数 - 除非有一种方法可以在不同的时间使用构造函数添加新值?下面的代码编译,但我得到一个运行时错误,说已经添加了密钥。谢谢你的帮助。

public class Students
        {
            public string FirstName { get; set; }
            public string SurName { get; set; }
            public int Age { get; set; }
            public double Score { get; set; }            
        }

        public void cmdTEST_Click(object sender, EventArgs e)
        {

            Dictionary<int, Students> Data = new Dictionary<int, Students>();
            Data.Add(5, new Students { FirstName = "Bob" });
            Data.Add(5, new Students { Age = 34 });             // run time error - "key already added"
            Data.Add(5, new Students { Score = 62 });

            // extract data
            double Score5 = Data[5].Score;
            double Age5 = Data[5].Age;
        }

1 个答案:

答案 0 :(得分:4)

您多次添加相同的密钥,这是不允许的。您可以一次添加所有属性,如下所示

Dictionary<int, Students> Data = new Dictionary<int, Students>();
Data.Add(5, new Students { FirstName = "Bob", Age = 34, Score = 62 });

如果您想稍后添加值,可以使用key添加值

Data.Add(5, new Students { FirstName = "Bob"});
Data[5].Age = 34;
Data[5].Score = 62;