我需要使用数组中的字符串值来命名一个类对象

时间:2016-12-21 04:29:58

标签: c#

我对C#真的很新,所以请原谅我的草率代码

public Kid(string name, int age, string location)
    {
        this.age = age;
        this.name = name;
        this.location = location;
    }
NAL = Console.ReadLine().Split(',');
Console.WriteLine("Name-{0} Age-{1} Location-{2}", NAL);
string name = "Kid" + NAL[0];
Kid [name] = new Kid(NAL[0], Int32.Parse(NAL[1]), NAL[2]);

我需要^这个工作,但我不明白任何类型可以有人帮助向我解释

2 个答案:

答案 0 :(得分:2)

所有你需要改变的是" Kid"集合。

Dictionary<string, Kid> Kids = new Dictionary<string, Kid>();
Kids[name] = new Kid(NAL[0], Int32.Parse(NAL[1]), NAL[2]);

使用您可以按名称检索的词典,添加具有相同名称的条目将覆盖上一个条目。

答案 1 :(得分:1)

您无法在C#中动态命名您想要的对象。但是,您可以使用Dictionary实现符合您需求的内容。

var kids = new Dictionary<string, Kid>()
kids.Add(name, new Kid(NAL[0], int.Parse(NAL[1]), NAL[2]);

然后,您可以通过

访问名为Sam的Kid
kids["KidSam"]

这使您可以访问基本上命名为Kid的对象,而无需为每个对象命名。