C# SQL分层数据的转换

C# SQL分层数据的转换,c#,recursion,C#,Recursion,我有一个sql数据库 ID Name ParentID 1 BillGates 1 2 Paul Allen 1 3 Progam manager 2 4 Some Programmer 3 如何将其递归到员工所在的列表中 public class Employee { public int ID { get; set; } public string Name { get; set; } public List<Employee> Children {

我有一个sql数据库

ID Name ParentID
1 BillGates 1
2 Paul Allen 1
3 Progam manager 2
4 Some Programmer 3

如何将其递归到员工所在的
列表中

public  class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<Employee> Children { get; set; }
}
公共类员工
{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共列表子项{get;set;}
}

您需要保留一本员工词典

Dictionary<int, Employee> employees;

public class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<int> ChildrenIDs { get; set; }
    public List<Employee> Children { get; set; }
}

您需要保留一本员工字典:

Dictionary<int, Employee> employees;

public class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<int> ChildrenIDs { get; set; }
    public List<Employee> Children { get; set; }
}

要递归地获取员工下的所有员工,可以使用以下函数:

    public IEnumerable<T> GetDescendents<T>(T parent, Func<T, IEnumerable<T>> childSelector)
    {
        yield return parent;

        foreach (var child in childSelector(parent))
        {
            foreach (var grandChild in GetDescendents(child, childSelector))
            {
                yield return grandChild;
            }
        }
    }

要递归地获取员工下的所有员工,可以使用以下函数:

    public IEnumerable<T> GetDescendents<T>(T parent, Func<T, IEnumerable<T>> childSelector)
    {
        yield return parent;

        foreach (var child in childSelector(parent))
        {
            foreach (var grandChild in GetDescendents(child, childSelector))
            {
                yield return grandChild;
            }
        }
    }


我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。我的答案是你想要的吗?如果没有,你能提供一个输入/输出示例吗?我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。我的答案是你想要的吗?如果没有,您能提供一个输入/输出示例吗?您能给出一个简短的示例吗?我有n个层次,像一个树状结构。
用员工引用替换ID
。你确定吗,你能把这个结构保存在
字典中吗
?看看我的答案,看看递归的例子不要紧。从数据库中读取所有信息,仅读取索引。然后使用索引获取员工引用。你能举一个简短的例子吗?我有n个像树结构一样深的级别。
用员工引用替换ID
。你确定吗,你能把这个结构保存在
字典中吗
?看看我的答案,看看递归的例子不要紧。从数据库中读取所有信息,仅读取索引。然后使用索引获取员工引用。我需要创建列表,而不是解析列表。您需要在哪里创建它们?什么来源?您有更详细的示例吗?我需要从SQL ex a数据集或对象的平面列表中创建的列表。我建议在您的问题中放置一个包含输入和输出的示例。我需要创建列表,而不是通过它进行解析。您需要在何处创建它们?什么来源?您有更详细的示例吗?我需要从SQL ex数据集或对象的平面列表中创建的列表。我建议在您的问题中添加一个包含输入和输出的示例。