如何将信息添加到班级列表中?

时间:2012-03-11 19:22:57

标签: c#

如果我有两个这样的课程:

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

我没有得到任何构建错误但没有添加任何内容。有什么建议吗?

4 个答案:

答案 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; }}       
}