如果您的示例中的代码是这样的,您的问题将起作用:
public class Container
{
public string name { get; set; }
public Inner Inner { get; set; }
}
public class Inner
{
public string text { get; set; }
public List<Inner> MoreInners { get; set; }
}
在这种情况下,您可以使用外部迭代器类来完成工作,或者将递归直接构建到 Container 类中。我会做后者:
public class Container
{
public string name { get; set; }
public Inner Inner { get; set; }
public List<Inner> SelectAllInner()
{
List<Inner> list = new List<Inner>();
SelectAllInner(Inner, list);
return list;
}
private void SelectAllInner(Inner inner, List<Inner> list)
{
list.Add(inner);
foreach(Inner inner in MoreInners)
SelectAllInner(inner, list);
}
}
public class Inner
{
public string text { get; set; }
public List<Inner> MoreInners { get; set; }
}