如何将项目添加到列表

时间:2018-08-08 17:14:33

标签: c#

我有班级人员,城市和街道。编号其门牌号。我面临的问题是,一个人不仅可以住在一个城市,而且可以住在两个城市(纽约州和洛杉矶)。如何为人添加新城市。

var live = new List<Live>();
    lives.Add(new Live
    {
        Person = new Person
        {
            FirstName = "Joe",
            LastName = "Doe"
        },
        City = new City
        {
            Name = "NY",
        },
        Number = 31
    });

2 个答案:

答案 0 :(得分:0)

您可以改为将“城市”更改为“城市”(城市列表)。

var live = new List<Live>();
lives.Add(new Live
{
    Person = new Person
    {
        FirstName = "Joe",
        LastName = "Doe"
    },
    Cities = new List<City>
    {
        new City 
        {
            Name = "NY",
        },
        new City
        {
            Name = "LA",
        }
    },
    Number = 31
});

为了进行编译,您的Person类应该这样定义:

public class Live
{
    public Person Person { get; set; }
    public List<City> Cities { get; set; }
    public int Number;
}

另外,根据您的评论,如果您想为每个城市使用Number,那么我能想到的最简单的解决方案是将Number从Person类转移到City类。

最终,这取决于您需要精确建模的内容,还有其他方法。

答案 1 :(得分:0)

Live类中,将变量City设为City[],允许某人居住在多个城市中。

City City;

TO

City[] Cities;

然后您可以更改代码,使其看起来像这样……

var live = new List<Live>();
lives.Add(new Live
{
    Person = new Person
    {
        FirstName = "Joe",
        LastName = "Doe"
    },
    Cities = new City[]
    {
        new City {
            Name = "LA"
        },
        new City {
            Name = "NY"
        }
    },
    Number = 31
});

编辑:

如果您希望Cities成为List<City>,则可以修改代码,使其看起来像这样……

var live = new List<Live>();
lives.Add(new Live
{
    Person = new Person
    {
        FirstName = "Joe",
        LastName = "Doe"
    },
    Cities = new List<City>(
    new City[]
    {
        new City {
            Name = "LA"
        },
        new City {
            Name = "NY"
        }
    }),
    Number = 31
});