Foreach, чтобы найти подчиненных моих подчиненных и так далее - PullRequest
1 голос
/ 03 августа 2010

Мне нужно сделать foreach, чтобы найти всех моих подчиненных, и это включает в себя поиск всех подчиненных моих подчиненных и так далее ...

Я пытался выполнить, но я не мог пройти, чтобы найти 2-й уровень подчиненных ...

Спасибо !!

Ответы [ 5 ]

3 голосов
/ 03 августа 2010
private IEnumerable<Employee> RecursiveGet(Employee durr)
{
  foreach(var sub in durr.Subordinates)
  {
    yield return sub;
    foreach(var recurse in RecursiveGet(sub))
      yield return recurse;
  }
}
1 голос
/ 03 августа 2010

Вы пытались использовать рекурсию ?

0 голосов
/ 03 августа 2010

PSUDO:

  private List<Subordinate> GetSubordinates(Subordinate you){
        List<Subordinate> subs = new List<Subordinate>();
        if(!you.HasSubordinates){
              return subs;
         }

         foreach(Subordinate s in you.Subordinates){
            subs.AddRange(GetSubordinates(s));
        }
  }
0 голосов
/ 03 августа 2010

Перейти на реализацию рекурсивной техники для этого.

0 голосов
/ 03 августа 2010

Что-то вроде следующего?

object RecursiveCall(Collection collection, object itemToFind)
{
    foreach(var item in collection)
    {
        if(item == itemToFind)
        {
             return item;
        }
        else
        {
             RecursiveCall(item, itemToFind);
        }
    }
}
...