找到下属的下属等等

时间:2010-08-03 12:20:12

标签: c#-3.0 foreach

我需要做一个foreach来找到我所有的下属,包括找到我下属的所有下属等等......

我试图完成但我无法通过寻找第二级下属...

谢谢!

5 个答案:

答案 0 :(得分:3)

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 :(得分:1)

您是否尝试使用recursion

答案 2 :(得分:0)

如下所示?

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

答案 3 :(得分:0)

为此实现递归技术。

答案 4 :(得分:0)

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));
        }
  }