我有一个部门列表,每个部门都有一个员工列表。我需要返回此列表中在2015年1月15日之后入职的所有员工。但我需要返回一个“名册”列表,即List<Roster>
。我需要帮助使用LINQ查询。
这是我的Department类
public class Department
{
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
public List<Employee> Employees { get; set; } = new List<Employee>();
public string Location { get; set; }
}
我的员工类看起来是这样的:
public class Employee
{
public int EmployeeId { get; set; }
public Guid PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime HireDate { get; set; }
}
这是我的班级花名册类。
public class Roster
{
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public DateTime HireDate { get; set; }
}
以下是我的查询的样子:
var employees = departments.Where(x => x.Employees).Any(o => o.HireDate >= Convert.ToDateTime("1/15/2015")).Select(i => new Roster { ??? }).ToList();
请记住,我想返回
List<Roster>
并且需要在结果中包含部门和员工信息。我不确定如何从Department对象和Employee对象获取一些数据来创建Roster类。谢谢。