首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#如何从父子列表中获取Ids列表

在C#中,可以通过递归算法来从父子列表中获取Ids列表。下面是一个示例代码:

代码语言:txt
复制
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列表,并将其输出到控制台。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券