首页 > 解决方案 > C# Linq flatd 构建菜单

问题描述

我有一个用于构建选择列表菜单的 flatdto。菜单应该使用 ID 作为菜单中的父项来构建,然后所有子菜单都应该属于该菜单。如果我删除空引用不确定我缺少什么来显示子菜单项,我只能显示父项。

List<DiseaseFlatDto> diseases;
                diseases = resp.Data.Where(d => d.Reference != null).ToList();

                //diseases = resp.Data.ToList();
     return SetPicklistItems(diseases.OrderBy(d => d.Name), null);


    private IEnumerable<PicklistItemModel> SetPicklistItems(IEnumerable<flatDto> diseases, int? Id)
    {
        return diseases.Where(d => d.Id == Id).Select(d => new PicklistItemModel
        {
            Value = d.Id.ToString(),
            Text = d.Name,
            Reference = d.Reference,
            Items = SetPicklistItems(diseases, d.Id)
        });
    }


Menu UI
A
...AA
...AB
...AC
B
C
...CA


Sample Data
Id      Name
1410    Ford
1411    Honda
1411    Honda Civic
1411    Honda Accord
1417    Jeep

标签: c#linqmenu

解决方案


推荐阅读