迭代类中的列表元素并呈现给新类

时间:2014-04-23 20:34:21

标签: c# list class iteration

对于我最初提供的信息不充分感到抱歉

这是我更新的代码示例并已格式化。

EmployeeClass对象

public class EmployeeClass
{
public int EId {get; set;}
public int EName {get; set;}
public List<Department> DeptList {get; set;}
public List<Area> AreaList {get; set;}
}

public class Department
{
    public int DepartmentID { get; set; }
    public string DepartmentName { get; set; }        
}
public class Area
{
    public int AreaID { get; set; }
    public string AreaName { get; set; }        
}

这里的要求是,我想以这样一种方式返回输出类sortedEmployeeClass,它将通过展开Department和Area

返回sortedofmployeeClass对象的List

sortedEsmployeeClass对象扩展了EmployeeClass

public class sortedEmployeeClass : EmployeeClass
{
public string DepartmentName {get; set;}
public string  AreaName{get; set;}
}

原始对象( EmployeeClass )包含具有部门和区域的员工列表作为列表

但是我希望将目标对象( sortedEmployeeClass )作为具有部门名称的员工列表,将区域名称作为字符串返回

希望这能让我更清楚地了解我正在寻找什么。如果您需要更多信息,请与我们联系。

例如 如果部门名单有人力资源,安全等...&amp;区域列表有Facility1和Facility2等...
我的预期输出是....

EId Ename DepartmentName AreaName
1   Joe   HR             Facilty1
1   Joe   Safety         Facilty1
2   Jill  HR             Facilty2
2   Jill  Safety         Facilty2

1 个答案:

答案 0 :(得分:1)

您的值对象(VO)是错误的,但使用与您建议的代码相同的结构(请记住,您需要创建员工列表):

//this is the list with combinations 
//---------------------------\/
List<sortedEmployeeClass> sortedList = new List<sortedEmployeeClass>();

foreach (var employee in employeeList)
{
   foreach(var department in employee.DeptList)
   {
      foreach(var area in employee.AreaList)
      {
          sortedEmployeeClass sorted = new sortedEmployeeClass();
          sorted.EId = employee.EId;
          sorted.EName = employee.EName;
          sorted.DepartmentName = department.Name;
          sorted.AreaName = area.AreaName;
          sortedList.Add(sorted);
      }
   }
}