C# 合并两个列表对象列表

C# 合并两个列表对象列表,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有两个学校班级,我想要两个,把这两个列表合并成一个列表 public class School { public string Name { get; set; } public List<ClassRoom> ClassRooms { get; set; } } public class ClassRoom { public int ClassRoomID { get; set; } public string GradeName { get; s

我有两个学校班级,我想要两个,把这两个列表合并成一个列表

public class School
{
    public string Name { get; set; }
    public List<ClassRoom> ClassRooms { get; set; }
}
public class ClassRoom
{
    public int ClassRoomID { get; set; }
    public string GradeName { get; set; }
    public List<Student> Students { get; set; }
    public List<Teacher> Teachers { get; set; }
}
public class Teacher
{
    public int TeacherID { get; set; }
    public string Name { get; set; }
    public List<Adress> Adresses { get; set; }
}
public class Student
{
    public int StudentID { get; set; }
    public string Name { get; set; }
    public List<Adress> Adresses { get; set; }
}
public class Adress
{
    public string DetailedAddress { get; set; }
    public string ZipCode { get; set; }
}
我面临的问题是内部列表没有正确添加。 合并的列表不存在 列出学生名单 教师名单


这两个列表都是空的。

您必须启动所有列表

School school1 = new School();
school1.ClassRooms = new List<ClassRoom>();

school1.ClassRooms.Students = new List<Student>();
school1.ClassRooms.Students.Adresses = new List<Adresses>();

school1.ClassRooms.Teachers = new List<Teachers>();
school1.ClassRooms.Teachers.Adresses = new List<Adresses>();
School School 1=新学校();
school1.questions=新列表();
school1.questions.Students=新列表();
school1.questions.Students.address=新列表();
school1.questions.Teachers=新列表();
school1.questions.Teachers.address=新列表();

你也必须进入第二学校。然后你可以添加。否则它将变为空。最好使用构造函数来实现这一点。

“合并列表没有列出学生和教师”-您实际上是在将
school2.questions
的引用添加到
school1.questions
中。您没有复制对象,只是复制对同一对象的引用。因此,你的问题不是合并列表,而是为什么
school2
的教室没有教师/学生的条目。不幸的是,您没有为我们展示足够的代码。也许你可以提供一个答案?你能添加示例数据和预期结果吗?@John问题解决了,这似乎是一个内存问题;我重新启动了机器,它神奇地工作了
School school1 = new School();
school1.ClassRooms = new List<ClassRoom>();

school1.ClassRooms.Students = new List<Student>();
school1.ClassRooms.Students.Adresses = new List<Adresses>();

school1.ClassRooms.Teachers = new List<Teachers>();
school1.ClassRooms.Teachers.Adresses = new List<Adresses>();