如何获得 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
我有一个名为 testItems
的 List<Test>
,其中包含许多测试 object。
每个 Test
object,都有一个 id
,并且可以在 [=] 中有另一个 Test
object 的 parentId
23=].
如果我有一个 id
,如何获得包含所有 child 的 IEnumerable<Test>
的最佳方法,包括 child 的 child s?
这里有更多信息:
我有以下测试Objects:
- 一个
- b
- c
d
a没有parent
b 有一个 parent 的 a
c 有一个 parent 的 b
d 有一个 parent 的 c
如果我有b的id,如何得到一个包含c的所有children的IEnumerable
。 IEnumerable
将包含 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;
}
}
}
}
在 C# 中,如何获得所有 child object 的 IEnumerable<T>
的最佳方法是什么,其中 child object 可以有一个child?
这是一个例子:
我有一个名为 Test
的 class,具有以下 ID:
int id
int parentId
我有一个名为 testItems
的 List<Test>
,其中包含许多测试 object。
每个 Test
object,都有一个 id
,并且可以在 [=] 中有另一个 Test
object 的 parentId
23=].
如果我有一个 id
,如何获得包含所有 child 的 IEnumerable<Test>
的最佳方法,包括 child 的 child s?
这里有更多信息:
我有以下测试Objects:
- 一个
- b
- c
d
a没有parent
b 有一个 parent 的 a
c 有一个 parent 的 b
d 有一个 parent 的 c
如果我有b的id,如何得到一个包含c的所有children的IEnumerable
。 IEnumerable
将包含 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;
}
}
}
}