我有一個部門列表。每個部門都有一份員工名單。我需要退回2015年1月15日之後聘用的所有員工。但是我需要返回「名冊」列表,即List<Roster>
。我需要LINQ查詢幫助。在LINQ查詢中創建一個新對象
這裏是我的部門級
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類。謝謝。
這是一個完美的答案,但也許嘗試,並添加一些文字來解釋一下。 –
我實際上遇到錯誤。它告訴我,名稱「x」在當前上下文中不存在。所以,我可以訪問直接設置,但不能訪問其父設備。 – Sam
@Sam你運行了確切的代碼或做了一些修改? –