【问题标题】:Copy List of objects into List in another object将对象列表复制到另一个对象的列表中
【发布时间】:2013-02-02 07:19:33
【问题描述】:

我一直试图在 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 类型的对象列表(准确地说,它有 2 个 House 类型的对象),这是该人拥有的两所房子。

类似:List&lt;House&gt; housesList = new List&lt;House&gt;;

基本上我要做的是将表单中创建的List&lt;House&gt; housesList 复制到对象Person 中的列表List&lt;House&gt; 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!");
        }

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

【问题讨论】:

  • 为什么你在 Person 类的构造函数名称为 Student

标签: c# forms list object collections


【解决方案1】:

试试这个。

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

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

    person.housesOwned.AddRange(housesList);

    people.Add(person);

【讨论】:

  • 我试过了,说 Person 没有定义任何 houseOwned 或任何扩展方法。谢谢你的回答!
  • @user1102815 我实际上是指人员对象而不是人员列表..会修改我的答案。
  • 嘿!谢谢!我让它工作了!我是否也应该在 Person 类中为此列表添加任何访问方法?是否可以做一些事情,比如设置一个列表?谢谢!!!
  • 列表已经可以访问了。是的,您可以根据需要添加 get/set。请接受@Blachshma 的回答,因为这对您有帮助。
【解决方案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!");
}

【讨论】:

  • 嘿!谢谢!这行得通!我从没想过创建实例然后添加列表!非常感谢您的帮助!
  • 没错!谢谢!看看有没有办法创建像 get 这样的方法;放;对于 Person 类中的列表?
  • 当然可以,在 C# 中它们被称为 Properties - 这个网站上有很多关于属性的示例。
猜你喜欢
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多