如何获得 child objects 的 IEnumerable 可以有 child objects

How to get an IEnumerable of child objects that can have child objects

在 C# 中,如何获得所有 child object 的 IEnumerable<T> 的最佳方法是什么,其中 child object 可以有一个child?

这是一个例子:

我有一个名为 Test 的 class,具有以下 ID:

int id

int parentId

我有一个名为 testItemsList<Test>,其中包含许多测试 object。

每个 Test object,都有一个 id,并且可以在 [=] 中有另一个 Test object 的 parentId 23=].

如果我有一个 id,如何获得包含所有 child 的 IEnumerable<Test> 的最佳方法,包括 child 的 child s?

这里有更多信息:

我有以下测试Objects:

如果我有b的id,如何得到一个包含c的所有children的IEnumerableIEnumerable 将包含 c 和 d。

谢谢。

像这样:

IEnumerable<Test> AllChildren(List<Test) list,Test mytest)
{
  foreach(var test in list)
  {
    if (test.parentid==mytest.id)
    {
       yield return test;
       foreach(var t in AllChildren(list,test))
       {
         yeild return t;
       }
    }
  }
}