我有一个模拟应用程序,其中有一个继承链等
Employee,Manager,President
。
Employee 类看起来像
class Employee
{
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime HireDate { get; set; }
public Employee()
{
}
}
Manager 类看起来像
class Manager : Employee
{
private List<Employee> employeesManaged = new List<Employee>();
public List<Employee> EmployeesManaged
{
get { return employeesManaged; }
set { employeesManaged = value; }
}
}
我想写一个方法来找到管理最多员工(其EmployeesManaged.Count属性最大)的经理。我目前有两个问题。
正如您将在下面的代码中看到的那样,我必须手动将每个 Manager 添加到 List 变量中。这不是一个长期的解决方案。什么是解决这个问题的有效、简洁的方法?
我的 Linq 语法不正确。
我认为第一个问题是最紧迫的。如果有 1000 个 Employee 对象,我将如何避免将每个对象添加到列表中?
public static Manager GetBestManager(List<Manager> managerList)
{
Manager m = managerList.Select(x => x.EmployeesManaged).Max();
}
我的主要方法
Employee e = new Employee();
e.EmployeeId = 101;
e.FirstName = "Tom";
e.LastName = "Jones";
e.HireDate = DateTime.Now.Subtract(TimeSpan.FromDays(40));
Employee e2 = new Employee();
e2.EmployeeId = 102;
Employee e3 = new Employee();
e3.EmployeeId = 103;
Manager m = new Manager();
m.EmployeeId = 201;
m.EmployeesManaged.Add(e);
m.EmployeesManaged.Add(e2);
Manager m2 = new Manager();
m2.EmployeesManaged.Add(e3);
List<Manager> mList = new List<Manager>();
mList.Add(m);
mList.Add(m2);
Manager.GetBestManager(mList);
使用当前语法,我收到错误“无法将类型 Employee 隐式转换为 Manager