[LINQ].NET/C#应用程序开发中使用LINQ中如何在树中查找满足条件的节点呢?

C#开发 作者: Rector 656 次阅读 · 读完约需 1 分钟 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在.NET/C#应用程序开发中,当前有一个树的实体类,如下:

现在需要使用LINQ从树的所有节点中查找出所有节点属性Key满足指定条件的节点,比如:

应该如何实现呢?

方案一

解决此类问题有很多种方案,比如我们可以使用递归来处理,也是最简单的实现方式。但我们还可以使用堆栈(stack)或者队列(queue)来处理。比如下面就以一个非递归的实现方式举例,如下:

调用方法:

方案二

此方案为一个树的静态扩展类以及其静态扩展方法实现,可以指定搜索子节点的条件表达式,如下:

方案三

另一种使用LINQSelectMany()方法实现的树节点的查找功能,如下:

或者:

方案四

一个完整的示例:

测试用例:

阅读了该文章的人还浏览了...

本文永久链接码友网 » [LINQ].NET/C#应用程序开发中使用LINQ中如何在树中查找满足条件的节点呢?

发布于: 2018-05-02 21:12:32
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册