Linq递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public IEnumerable<NavigationMagnetics> GetRegion(List<NavigationMagnetics> list, int id)
{
    IEnumerable<NavigationMagnetics> query = from region in list
                                where region.Id == id
                                select region;
    return query.ToList().Concat(query.ToList().SelectMany(r => GetRegion(list, r.Supid.ToInt32())));
}
// 生成最终结果
public List<NavigationMagnetics> GetResult(List<NavigationMagnetics> list, int id)
{
    List<NavigationMagnetics> regions = new List<NavigationMagnetics>();
    regions.AddRange(list.Where(r => r.Id == id));
    regions.AddRange(GetRegion(list, regions.Where(x=>x.Id== id).FirstOrDefault().Supid.ToInt32()));
    return regions;
}

  

本文作者:仲夏不凉爽

本文链接:https://www.cnblogs.com/xiangshifu/p/16989109.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   仲夏不凉爽  阅读(55)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.