Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将项目添加到列表中_C# - Fatal编程技术网

C# 如何将项目添加到列表中

C# 如何将项目添加到列表中,c#,C#,我有班级,城市和街道。给房子编号。我面临这样一个问题,一个人不仅可以住在1个城市,还可以住在2个纽约和洛杉矶。如何为人添加新城市 var live = new List<Live>(); lives.Add(new Live { Person = new Person { FirstName = "Joe", LastName = "Doe" }, City

我有班级,城市和街道。给房子编号。我面临这样一个问题,一个人不仅可以住在1个城市,还可以住在2个纽约和洛杉矶。如何为人添加新城市

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

您可以将城市改为城市列表中的城市

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;
}
另外,根据您的评论,如果您想要每个城市的数字,那么我可以想象的最简单的解决方案是将数字从Person类移动到City类

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

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

City City;

然后你可以把你的代码改成这样

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
});

把城市列成一个城市的清单。我不明白到底是什么问题。你能澄清一下吗?试着学习如何创建列表和更新question@Pac0说得好,我错了。我不相信你能像那样显式初始化一个列表,这个功能是为数组保留的。不,那个列表构造函数工作得很好,任何IEnumerable都可以。但是如何给城市增加一个数字呢?每个城市都有自己的号码。我有公共类Live{public Person{get;set;}公共城市{get;set;}公共整数{get;set;}}@EvgeniyBojenov如果这个数字与城市链接,那么它应该在城市类中。如果所有这些都来自关系数据库和/或出于某些原因,您不想将Number属性添加到类City,那么您可能应该执行某种中间类PersonCity。每个城市都包含一个城市和一个相关的数字。然后,Person将包含一个列表。@正如kenny所说,这对于任何列表、数组、集合等都是完全有效的初始化。。。
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
});
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
});