C#代码高级写法——总结Linq表达式Select方法的多使用场景

编程入门 行业动态 更新时间:2024-10-28 11:21:59

C#代码高级写法——总结Linq<a href=https://www.elefans.com/category/jswz/34/1771310.html style=表达式Select方法的多使用场景"/>

C#代码高级写法——总结Linq表达式Select方法的多使用场景

今天写Linq表达式中Select以及SelectMany的用法,select是将一个源list投影到一个属性值或者多个属性值,也可以是另外一个属性类,通常和where子句连用,通过where子句对list进行筛选之后投影成我们需要的属性。有时我们只需要list中的单个属性,例如是需要查询井的信息,那么我们只需要知道井ID的list集合。那么我们就可以使用select语句投影成到这个井ID属性。

  • select单属性投影

石油软件类的项目通常左边为项目树,通过左边treeList的节点点击,向后台发送TreeNode属性集合,石油类部门的组织机构通常分为井区、井组、单井,当我们点击了井组集合,井区之下包含了很多口单井,井组之下包含该井组的单井,通常为5~10口单井。假设用户点击了井组节点之后,我们要获得他下面的单井节点。我们首先需要判断用户点击的是哪一级的节点,做法一般是给点击的节点赋值一个Level,通过spilt()方法判断点击是井区、井组还是单井级别。当然我们这里限定了用户点击的是井组节点,那么我们就要获取它下面所属的单井节点。需要注意的是,项目树节点传过来的类型为List<object>。

需求:筛选出组织机构下的单井,拿到井ID属性

做法:先使用where子句筛选是否为组织机构的单井,通过select方法投影出井的ID

var allOilWellsId = wellNode.Where(x => x is WellOrganDescriptor)
.OfType<WellOrganDescriptor>()
.Select(x => x.WellID).ToList();

WellOrganDescriptor类封装了组织机构

更多推荐

C#代码高级写法——总结Linq表达式Select方法的多使用场景

本文发布于:2024-02-11 06:49:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679699.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表达式   写法   场景   高级   代码

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!