我正在从事的一个项目要求我解决以下模拟程序问题:
程序从 sql 中提取 2 个单独的不同列表。作为示例,我将使用“员工”和“任务”。然后,我们以编程方式为每个“任务”分配 0-2 个“员工”。每个员工可以分配到不止一项任务,但有些任务可能需要多名员工,有些任务可能未分配。
这一切都发生在 C# 级别并且不会存储回 sql,在分配之后程序通过解析单个分配的结果来解决模拟,存储结果并运行下一组列表。
我不需要管理超过 10-15 个最大大小的列表,但需要一个足够高效的解决方案,可以批量运行数千个 sims,而分配解决方案不会妨碍。
我有相当大的灵 active ,因为此时对象只是直接来自 sql 的列表项。
(我不是专业程序员,所以这可能是显而易见的,也可能是不可能的)
最佳答案
这可以使用泛型轻松完成。
public class Employee
{
public string EmployeeName;
public string EmployeeID;
}
public class Task
{
public string TaskName;
public List<Employee> EmployeeList = new List<Employee>();
}
public void TestTaskList()
{
// list of tasks.
List<Task> m_TaskList = new List<Task>();
// create a new task.
Task oFirstTask = new Task { TaskName = "First Task" };
// add this task to your list
m_TaskList.Add(oFirstTask);
// loop through your tasks.
foreach( Task oTask in m_TaskList) {
if (oTask.EmployeeList.Count() == 0)
// there are no employees, so add one
oTask.EmployeeList.Add(
new Employee { EmployeeName = "mschietinger" }
);
}
}
关于c# - 跟踪分配的对象分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271885/