【发布时间】:2020-11-06 10:14:18
【问题描述】:
目标是开发一个人力规划课程,将工作分配给员工 根据他们的技能。
-
我们在以下任务(变量)中分配任务。
IEnumerable<Task> task = repository.Tasks.ToList();
taskSmall 包含 TaskId 和 Skill Id:-
Id SkillRequired
1 1
2 2
-
现在我们有了人员列表
IEnumerable<Person> people = repository.People.ToList();
其中 people 包含 Person Name 、 HashSet<Skill> Skills 等字段。一个人可以拥有多种技能。
-
问题是我们需要匹配来自
task的任务所需的技能和来自HashSet的每个人的技能,并且我们需要在分配后检索TaskId和Person Name。 -
每项任务都需要一个人来执行。如果任务重复需要技能,那么我们需要根据技能检查哪个人不忙(或没有分配任何任务)来完成该任务。
【问题讨论】:
-
什么是
taskSmall? -
试试 IEqulityComparer : docs.microsoft.com/en-us/dotnet/api/…
-
当您有技能 2 的任务和技能 1 的任务时,您想如何处理具有技能 1 和 2 的人 A、具有技能 1 的人 B?
-
@NetMage 如果您将具有技能 2 的任务分配给 A 人,那么他将很忙,而您离开另一个任务和 B 人。如果被排除在外的人有技能完成剩余任务,那么您应该分配他
-
但是如果您按顺序分配任务,您可以将技能 1 的任务分配给 A 人,而没有人执行技能 2 的任务 - 我想您想避免这种情况吗?
标签: c# asp.net .net asp.net-mvc linq