?
在C#中,可以通过递归算法来从父子列表中获取Ids列表。下面是一个示例代码:
using System;
using System.Collections.Generic;
public class Node
{
public int Id { get; set; }
public List<Node> Children { get; set; }
}
public class Program
{
public static List<int> GetIdsFromParentChildList(List<Node> nodes)
{
List<int> ids = new List<int>();
foreach (var node in nodes)
{
ids.Add(node.Id);
if (node.Children != null && node.Children.Count > 0)
{
ids.AddRange(GetIdsFromParentChildList(node.Children));
}
}
return ids;
}
public static void Main(string[] args)
{
// 创建父子列表
List<Node> nodes = new List<Node>
{
new Node
{
Id = 1,
Children = new List<Node>
{
new Node { Id = 2 },
new Node { Id = 3, Children = new List<Node> { new Node { Id = 4 } } }
}
},
new Node { Id = 5 },
new Node { Id = 6, Children = new List<Node> { new Node { Id = 7 } } }
};
// 获取Ids列表
List<int> ids = GetIdsFromParentChildList(nodes);
// 输出Ids列表
foreach (var id in ids)
{
Console.WriteLine(id);
}
}
}
上述代码中,我们定义了一个Node
类来表示父子节点,其中包含Id
属性和Children
属性。然后,我们编写了一个GetIdsFromParentChildList
方法,该方法使用递归算法遍历父子列表,将所有节点的Id添加到一个列表中,并返回该列表。最后,在Main
方法中,我们创建了一个父子列表,并调用GetIdsFromParentChildList
方法来获取Ids列表,并将其输出到控制台。
这是一个简单的示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云