我有一個包含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 :(吉爾,吉姆,馬克或羅恩的經理會做到這一點雖然 –