利用Lambda表达式从实体集合中筛选出符合条件的实体集合
前言
已知存在两张表:表A和表B,表A中有一个字段存储的是表B的部分Id集合,以字符串的形式存储,如图1-1所示:
图1-1 表A中的字段
现在我获取到了表A中这个字段的值和表B中所有数据的实体集合,怎么用Lambda表达式找到表B中这些Id对应的实体的集合呢?这句话我写的可能有点绕,你可以多读几遍。
解决方案
List<AppointFunctionItem> APFI = functionItem.Select();
string relateItemId = programme.RelateItemDirectoryNO;List<AppointFunctionItem> functionItemList =
APFI.Where(o =>relateItemId.Split(',').Contains(o.AppointFunctionItemID.ToString())).ToList();
如果这样看不懂的话,其实可以将其分解为如下代码:
List<AppointFunctionItem> APFI = functionItem.Select();
string relateItemId = programme.RelateItemDirectoryNO;string[] ids = relateItemId.Split(',');
List<AppointFunctionItem> resultList = new List<AppointFunctionItem>();
for (int i = 0; i < ids.Length; i++)
{resultList.Add(APFI.Find(o => o.AppointFunctionItemID.ToString() == ids[i]));
}
使用场景
其实这个操作,我之前的处理方式是将表A中的字符串作为查询条件去数据库直接读取符合条件的表B的实体集合,这样也可以实现。但是呢,程序中这个操作算的上是使用率较高的,如果采用这种方式,程序有时候会出现卡顿的现象(毕竟需要一次与服务器的交互)。而Lambda表达式正好解决了这个问题。
结语
第一种方式用where查询,一行代码即可,但是有点长。第二种方式用find查询,容易理解。两种方式的基本思路都是先用Split函数将字符串"1,2,3,4"
分解为字符串数组{"1","2","3","4"}
,再去根据此数组查询出满足条件的实体集合。第一种方式还用到了Contains函数。
利用Lambda表达式从实体集合中筛选出符合条件的实体集合相关推荐
- 如何从一个大规模的文本中筛选出符合条件的记录
现在是大数据时代.尤其是互联网企业,任何一个人都有可能拿到一份庞大的数据.不管你是否具有数据处理的能力,你都要面对它. 面对突如其来的一份庞大的数据,该怎样来对付它呢?这时候用SqlCel正是一个非常 ...
- java 根据条件从list中筛选出符合条件的集合_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合
点波关注不迷路,一键三连好运连连! 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里. 统计员工的最高薪资.平均薪资.薪资之和. 将员 ...
- Dataframe中筛选出满足条件的行
[小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Dataframe中筛选出满足条件的行 选择题 关于以下代码说法错误的是? import ...
- 用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和
用过就记录一下,筛选符合条件的,并计算某个元素的和.用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和 代码如下 List<OctvBoardCheckEquip& ...
- R语言 | 利用tushare下载中小板所有股票数据并筛选出符合条件的股票
作者的tushare ID:456548 作者在股市进行比较短线的投资,开发了一些高效的指标作为买卖的参考,于是需要k线.市值.换手率等数据进行研究,同花顺等软件上面大多数据不能导出,所以找到了tus ...
- Java中List集合过滤出符合条件的List元素集合
在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据.比如:我们有一批学生对象,每个学生都有自己的年龄属性,但是我们想要筛选出这一批学生中年龄为2 ...
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...
- 利用Lambda表达式解决c#文件名排序问题(是100大还是11大的问题)
1.问题背景: 有时需要对输出的文件列表进行排序,如直接使用List<T>.Sort()方法排序时,遇到9, 10,11和100排序的问题,往彺会出现2.xxx大于100.xxx (其中, ...
- 神技能!研究人员利用扫描仪成功从物理隔离设备中偷出数据
本文讲的是神技能!研究人员利用扫描仪成功从物理隔离设备中偷出数据,近日,一组以色列研究人员设计了一种新技术,可以利用扫描仪通过受控恶意软件在气隙系统(air-gapped)中获取用户设备中的数据. 关 ...
最新文章
- c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针...
- 数据绑定表达式(下):.NET发现之旅(二)
- 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?
- Win10如何取消开机密码
- Leetcode--438. 找到字符串中所有字母异位词
- qt5 窗体显示完毕信号_iPhone手机信号不好?试试这样设置,随时随地让你的手机信号满格...
- 第七章信息系统安全工程考试要点及真题分布
- 硬件创新需要去理解的点(精炼总结)
- goip技术原理图解_图解电工识图一看就懂
- 无限递归替换文件内的某个字符串
- DataTable中的数据导出Excel文件
- Linux系统网络性能实例分析
- 【ERP流程图】:生产制造
- kei4的安装教程(附下载地址)
- DHCP报文抓包分析
- c语言代码混淆器,代码混淆
- 我的求学十年(00至10):从中学到大学,年少轻狂立大志
- STM32——LCD液晶显示
- LAMP架设论坛空间
- linux添加core文件位置,Linux生成core文件、core文件路径设置
热门文章
- D3.js入门基础教程
- 美国 计算机与艺术 专业,美国加州大学圣地亚哥分校计算机与艺术专业.pdf
- 单片机硬件电路设计实例分析
- SSM框架实现的垃圾分类管理系统+文档
- arXiv论文提交流程
- globk平差输出选项含义
- 浙江工商大学计算机考试科目,浙江工商大学(专业学位)计算机技术研究生考试科目和考研参考书目...
- Probability and Stochastic Models(1) —— 研一新课学习笔记
- 这个Python游戏库,打开就能玩一天!
- matlab直流电动机特性曲线,他励直流电动机的机械特性曲线的分析