我有一个包含UserId和ManagerId的表。当编辑这张表时,如果Jim是Jills经理,而Ron是Marks经理,那么我需要确保 ,那么我不应该将Mark设置为Jim经理,因为它会在无限循环中创建。我想验证可以将管理员字段设置为UserId的表单。递归检查员工是否是老板的方法
-3
A
回答
4
我没有看到那里的无限循环...... Ron是Marks的经理,Jim是Jills经理。如果您将Mark设置为Jims经理,那么您将拥有一个线性管理树。罗恩 - > Mark-> Jim->吉尔。无需递归:-)
我明白你想完成什么,但更多的信息会给你更好的见解来帮助你。这些员工是一个班级还是一个表格的实体?
我假设每个员工只会有一个经理。因此,设置雇员作为另一个的经理时,进步了线性树,看它是否将是有效的,就像这样:
//Assume managerName is "Mark" and employeeName is "Jim", as in your example above
public bool isManagerValid(string managerName, string employeeName)
{
bool valid = true;
var manager = getEmployee("Mark"); //The "to-be" manager of Jim
var employee= getEmployee("Jim");
var currentManager = getEmployee(manager.Manager); //Get Marks manager
while(currentManager != null && valid)
{
if(currentManager == employee)
{
valid = false; //Some manager up the line from Mark is already Jim
}
else
{
//Get the next manager up
currentManager = getEmployee(currentManager.Manager);
}
}
return valid;
}
我没有在视觉工作室尝试此,键入它在这里,因此,如果有任何错字,请原谅我
+0
非常感谢你的回答。 –
+0
哈哈,没问题,在黑暗中拍摄一种镜头,但认为它可以帮助你一点 –
相关问题
- 1. 递归检查数是否是质数
- 2. 递归布尔方法检查整数是否可整除
- 3. 如何检查ruby散列成员是否递归存在?
- 4. 检查是否使用递归
- 5. 递归 - 检查数组是否增加
- 6. 递归方法检查一行整数是否递减:return true/false
- 7. 检查记录是否老删除它
- 8. 这个语法是否是递归的?
- 9. 递归检查列表是否是Python中的回文列表
- 10. 检查数组是否是递归的子数组
- 11. 检查会员是否为
- 12. 检查内存是否归零的最快方法
- 13. 检查递归外键的方法
- 14. 检查一个链表是否是回文(递归地)
- 15. 检查用户是否是会员
- 16. 递归查询来检查所有父母是否已启用
- 17. 检查jQuery的方法是否存在
- 18. 递归SQL查询返回特定的顶级老板
- 19. Task.RunSynchronously()是否“递归地”工作?
- 20. malloc是否递归地工作?
- 21. 什么传递给检查键是否被按下的方法?
- 22. 如何检查vimeo视频是否是员工选择?
- 23. 检查,如果树是使用递归
- 24. 检查结构的递归子是否为空(C语言)
- 25. 检查方法是否是类方法和调用属性
- 26. 这是检查它是否是Multiple If或有ArrayList检查的有效方法
- 27. 检查方法是否被弃用
- 28. 检查方法是否存在子类
- 29. 检查类是否有静态方法
- 30. 检查分割方法是否为空
你使用什么数据库访问技术(EF,DAO等)?另外,如果你所说的存在,它不会是无限的(吉尔 - >吉姆 - >马克 - >罗恩)。我明白你在说什么,这是一个简单的递归方法。但是,您只列出了语言和UI类型,所以我不知道如何针对未知数据库层编写代码。 –
你到目前为止尝试过什么?你能否将你写的代码加入到这一点,并显示你遇到的具体问题? –
不会不会Ron - Mark - Jim - Jill :(吉尔,吉姆,马克或罗恩的经理会做到这一点虽然 –