public void DecideRoles() { // Manager Role Manager = Agents.First(a => a.CleanedCells.Count == Agents.Max(p => p.CleanedCells.Count)); Manager.Role = ContractRole.Manager; // Contract Roles Contractors = new List <MasCleaningAgent>(Agents.Where(a => a.Id != Manager.Id)); foreach (var cleaningAgent in Contractors) { cleaningAgent.Role = ContractRole.Contractor; } (Contractors as List <MasCleaningAgent>).Add(Manager); }