有个每次只能根据当前节点值返回它的下一级子节点的方法(这个方法本身不能修改),如何利用该方法(递归)返回树的所有节点呢?大概的描述性代码: public override List<Data> GetNodes(string node)
{
List<Data> querydata = new List<Data>();
querydata = Query(node); //根据当前节点值(node),仅返回它的下一级所有子节点(querydata )即:遍历深度仅一级.
return querydata;
} public class Data
{
public string id { get; set; }
public string name { get; set; }
public string other { get; set; }
}如何利用这个GetNodes方法来返回树的所有节点呢?模拟数据:可以是包含如上3个字段的任意形式(xml也可以,但每次遍历深度仅当前节点的下一级.),请教大家了!
{
List<Data> querydata = new List<Data>();
querydata = Query(node); //根据当前节点值(node),仅返回它的下一级所有子节点(querydata )即:遍历深度仅一级.
return querydata;
} public class Data
{
public string id { get; set; }
public string name { get; set; }
public string other { get; set; }
}如何利用这个GetNodes方法来返回树的所有节点呢?模拟数据:可以是包含如上3个字段的任意形式(xml也可以,但每次遍历深度仅当前节点的下一级.),请教大家了!
{
List<Data> querydata = new List<Data>();
querydata = Query(node); //根据当前节点值(node),仅返回它的下一级所有子节点(querydata )即:遍历深度仅一级.
return querydata.Union(querydata.SelectMany(x => GetNodes(x.name))).ToList();
}