将对象列表复制到另一个对象的List中

时间:2013-02-17 21:52:11

标签: c# forms list object collections

我一直试图在c#中解决这个问题。我刚开始做C#所以感谢你的帮助。

我想将一个对象列表复制到另一个对象的列表中。

它看起来像这样。

class Person
    {
        public String fName;
        public String lName;
        public List<House> housesOwned = new List<House>();
        public Student(String FName, String LName)
        {
            this.fName = FName;
            this.lName = LName;

        }
    }

class House
    {
        public String Address;

        public House (String ad1){
            this.Address1 = ad1;

        }
    }

现在,在我的表单中,我创建了一个对象列表House(它有两个类型为House的对象),这是该人拥有的两个房子。

类似于:List<House> housesList = new List<House>;

基本上我要做的是将表单中创建的List<House> housesList复制到对象Person中的列表List<House> housesOwned。按下提交按钮时会发生这种情况。到目前为止我得到了这个:

List<Person> person = new List<Person>(); // declared at the beginning of the form
.....
private void submit_Click(object sender, EventArgs e)
        {
            person.Add(new Person(personName.Text, personLName.Text));
            //I do not know what comes next to copy the list housesList to the list housesOwned
            MessageBox.Show("Done!");
        }

我希望复制包含其地址的对象房屋。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

保留您创建的新Person的实例,然后将houseList添加到该实例。

private void submit_Click(object sender, EventArgs e)
{
        var newPerson = new Person(personName.Text, personLName.Text);
        newPerson.housesOwned.AddRange(houseList);
        person.Add(newPerson);
        MessageBox.Show("Done!");
}

答案 1 :(得分:0)

试试这个。

   List<Person> people = new List<Person>();

    var person = new Person(personName.Text, personLName.Text);

    person.housesOwned.AddRange(housesList);

    people.Add(person);