【问题标题】:Get nested elements in hierarchical manner C# linq以分层方式获取嵌套元素 C# linq
【发布时间】:2019-02-20 14:39:02
【问题描述】:

我有映射为父子关系的对象列表。 所以父母有很多孩子,孙子和曾孙等等。 我的结构表如下

UserId UserNme 
1      Jack    
2      William   
3      asha      
4      winston

ParentId ChildId
2          3
3          4

所以我想按以下分层方式列出用户:

->用户不是孩子(父母/非父母)
----> 子用户
-------->孙子用户
-----------> 曾孙子用户

我试过下面的代码,但没有完成:

 public List<MarketingUserDto> GetChildAgents(List<MarketingUserDto> agents,List<MarketingUserDto> resultAgents)
    {

        if (agents.Count == 0)
        {                
            var parentagents = _userRegistrationRepository.GetMany(x => ((x.IsParentAgent ?? false) == true && x.UserTypeId == (short)Enums.UserTypes.Agent) || (x.UserTypeId == (short)Enums.UserTypes.Super_Manager && (x.IsParentAgent ?? false) == false));
            this.GetChildAgents(Mapper.Map<List<UserRegistration>, List<MarketingUserDto>>(parentagents.ToList()), resultAgents);
        }
        else
        {
            foreach (var agent in agents)
            {
                var childagents = _agentMappingRepository.GetMany(x => x.ParentId == agent.UserId, y => y.UserRegistration);

            }
        }
        return resultAgents;
    }

您能否提供任何建议如何实现这一目标?

【问题讨论】:

  • 所以你希望它在一个单数列表中变平?
  • 不能靠近数据源吗?

标签: c# linq


【解决方案1】:

如果您不想重新发明压扁轮,请查看 MoreLinq 的 Flatten() extension method

如果您使用NuGet package,您将获得它以及更多有用的 LINQ 扩展。

【讨论】:

    猜你喜欢
    • 2022-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    相关资源
    最近更新 更多