C# 3.0 Foreach找到我的下属的下属等等

C# 3.0 Foreach找到我的下属的下属等等,c#-3.0,foreach,C# 3.0,Foreach,我需要做一个foreach来找到我所有的下属,这包括找到我下属的所有下属等等 我试图完成,但我无法通过寻找第二级下属 谢谢 你试过使用吗?你试过使用吗?类似下面的东西吗 object RecursiveCall(Collection collection, object itemToFind) { foreach(var item in collection) { if(item == itemToFind) { retu

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

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


谢谢

你试过使用吗?

你试过使用吗?

类似下面的东西吗

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

像下面这样的

object RecursiveCall(Collection collection, object itemToFind)
{
    foreach(var item in collection)
    {
        if(item == itemToFind)
        {
             return item;
        }
        else
        {
             RecursiveCall(item, itemToFind);
        }
    }
}
private IEnumerable递归获取(Employee durr)
{
foreach(在durr.下属中的var sub)
{
收益率分包;
foreach(在RecursiveGet(sub)中递归变量)
收益率回归;
}
}
私有IEnumerable RecursiveGet(Employee durr)
{
foreach(在durr.下属中的var sub)
{
收益率分包;
foreach(在RecursiveGet(sub)中递归变量)
收益率回归;
}
}

为此,请执行递归技术。

为此,请执行递归技术。

请执行以下操作:

  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));
        }
  }
private List getsubstances(下属您){
List subs=新列表();
如果(!you.HasSubordinates){
返回潜艇;
}
foreach(你的下属,下属){
子公司AddRange(GetSub属公司);
}
}
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));
        }
  }
private List getsubstances(下属您){
List subs=新列表();
如果(!you.HasSubordinates){
返回潜艇;
}
foreach(你的下属,下属){
子公司AddRange(GetSub属公司);
}
}

他不是在找一个下属,他在试图瓦解所有下属。他不是在找一个下属,他在试图瓦解所有下属。这么多级别?它看起来几乎像你的(没有收益率)或基本情况?我在看什么?我来列举一些。首先,“下属”是什么?它意味着一个集合,但您将其视为一个个体。第二,积累大于收益的选择。第三,不需要的空支票……请记住PSUDO标签。第一个是打字错误。。。我修正了这一点,第二个是正确的,我已经在上面提到过,第三个是空检查,如果你假设下属是非空的,那么空检查是不必要的。如果下属属性可以为空,那么它将是非常必要的。那么多级别?它看起来几乎像你的(没有收益率)或基本情况?我在看什么?我来列举一些。首先,“下属”是什么?它意味着一个集合,但您将其视为一个个体。第二,积累大于收益的选择。第三,不需要的空支票……请记住PSUDO标签。第一个是打字错误。。。我修正了这一点,第二个是正确的,我已经在上面提到过,第三个是空检查,如果你假设下属是非空的,那么空检查是不必要的。如果substances属性可以为null,那么这是非常必要的。我可能会将其更改为一个扩展而不是一个方法。另外,如果C#允许lambda/anonymous方法中的收益率,这将非常有趣。我可能会将其更改为一个扩展,而不是一个方法。此外,如果C#允许lambda的/匿名方法中的收益率,这将是一件非常有趣的事情。