Найти максимальное количество списка пользовательских типов
У меня есть макет приложения, где цепочка наследования, как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()
{
}
}
и класс менеджера выглядит
class Manager : Employee
{
private List employeesManaged = new List();
public List EmployeesManaged
{
get { return employeesManaged; }
set { employeesManaged = value; }
}
}
Я хотел бы написать метод, который находит менеджера, который управляет большинством сотрудников (чье свойство EmployeesManaged.Count является наибольшим). У меня сейчас две проблемы.
как и ты'Посмотрим в коде ниже, я должен вручную добавить каждого менеджера в переменную списка. Это н'долгосрочное решение. Какой эффективный, краткий способ решения этой проблемы?
мой синтаксис Linq неверен.
Я думаю, что первая проблема является наиболее актуальной. Если бы было 1000 объектов Employee, как бы мне обойти добавление каждого из них в список?
public static Manager GetBestManager(List 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 mList = new List();
mList.Add(m);
mList.Add(m2);
Manager.GetBestManager(mList);
с текущим синтаксисом я получаю ошибку "Не удается неявно преобразовать тип Employee в Manager