我有班级人员,城市和街道。编号其门牌号。我面临的问题是,一个人不仅可以住在一个城市,而且可以住在两个城市(纽约州和洛杉矶)。如何为人添加新城市。
var live = new List<Live>();
lives.Add(new Live
{
Person = new Person
{
FirstName = "Joe",
LastName = "Doe"
},
City = new City
{
Name = "NY",
},
Number = 31
});
答案 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
});