如果我有两个这样的课程:
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public List<Employee> employees { get; set; }
}
public class Employee
{
public string Name { get; set; }
public string Job { get; set; }
public string Date { get; set; }
}
然后如果我这样做:
var departments = new List<Department>();
Department d = new Department
{
Id = 1,
Name = "Depart1",
};
Department d2 = new Department
{
Id = 2,
Name = "Depart2",
};
departments.Add(d);
departments.Add(d2);
如何使用foreach循环添加到Department类中的employees列表?当我这样做时:
foreach(Department dmt in departments)
{
Employee worker = new Employee
{
Name = "Steve",
Job = "Cleanup",
Date = "Today",
};
dmt.employees.Add(worker );
}
我没有得到任何构建错误但没有添加任何内容。有什么建议吗?
答案 0 :(得分:2)
您没有实例化employees
属性。将您的班级定义更改为:
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public List<Employee> employees { get; set; }
public Department()
{
employees = new List<Employee> ();
}
}
或者,如果您不想使用构造函数来实例化employees
属性,则只需要确保在尝试向Employee
对象添加List<Employee>
之前执行此操作。 {1}}。
答案 1 :(得分:0)
您需要在Department类中初始化您的公共财产员工 在这种情况下,您可以在Department实例的构造函数中执行此操作。
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public List<Employee> employees { get; set; }
public Department()
{
employees = new List<Employee>();
}
}
答案 2 :(得分:0)
尝试这样
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public List<Employee> employees { get; set; }
public Department()
{
employees = new List<Employee>();
}
}
foreach(Department dmt in departments)
{
dmt.employees.Add( new Employee () {
// InterestedID = ((int)dataReader["JobId"]),
Name = "Steve",
Job = "Cleanup",
Date = "Today",
});
}
答案 3 :(得分:0)
我会像这样设计我的课程,使Employees List只读:
public class Department
{
private readonly List<Employee> _employees = new List<Employee>();
public int Id { get; set; }
public string Name { get; set; }
public List<Employee> employees { get { return this._employees; }}
}