在C#中,获取IEnumerable<T>
所有子对象的最佳方法是什么,其中子对象可以有一个孩子?
以下是一个例子:
我有一个名为Test
的班级,其中包含以下ID:
int id
int parentId
我有一个名为List<Test>
的{{1}},其中填充了许多测试对象。</ p>
每个testItems
对象都有一个Test
,并且id
中的另一个parentId
对象可以有一个Test
。
如果我有List
,那么获得包含所有孩子(包括孩子的孩子)的id
的最佳方法是什么?
以下是一些更多信息:
我有以下测试对象:
d
a没有父母
b的父母是
c的父母为b
d的父母是c
如果我有b的id,我怎样才能获得包含c的所有孩子的IEnumerable<Test>
。此IEnumerable
将包含c和d。
感谢。
答案 0 :(得分:0)
这样的事情:
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;
}
}
}
}