前言

  已知存在两张表:表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表达式从实体集合中筛选出符合条件的实体集合相关推荐

  1. 如何从一个大规模的文本中筛选出符合条件的记录

    现在是大数据时代.尤其是互联网企业,任何一个人都有可能拿到一份庞大的数据.不管你是否具有数据处理的能力,你都要面对它. 面对突如其来的一份庞大的数据,该怎样来对付它呢?这时候用SqlCel正是一个非常 ...

  2. java 根据条件从list中筛选出符合条件的集合_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

    点波关注不迷路,一键三连好运连连! 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里. 统计员工的最高薪资.平均薪资.薪资之和. 将员 ...

  3. Dataframe中筛选出满足条件的行

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Dataframe中筛选出满足条件的行 选择题 关于以下代码说法错误的是?   import ...

  4. 用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和

    用过就记录一下,筛选符合条件的,并计算某个元素的和.用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和 代码如下 List<OctvBoardCheckEquip& ...

  5. R语言 | 利用tushare下载中小板所有股票数据并筛选出符合条件的股票

    作者的tushare ID:456548 作者在股市进行比较短线的投资,开发了一些高效的指标作为买卖的参考,于是需要k线.市值.换手率等数据进行研究,同花顺等软件上面大多数据不能导出,所以找到了tus ...

  6. Java中List集合过滤出符合条件的List元素集合

    在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据.比如:我们有一批学生对象,每个学生都有自己的年龄属性,但是我们想要筛选出这一批学生中年龄为2 ...

  7. java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合

    java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...

  8. 利用Lambda表达式解决c#文件名排序问题(是100大还是11大的问题)

    1.问题背景: 有时需要对输出的文件列表进行排序,如直接使用List<T>.Sort()方法排序时,遇到9, 10,11和100排序的问题,往彺会出现2.xxx大于100.xxx (其中, ...

  9. 神技能!研究人员利用扫描仪成功从物理隔离设备中偷出数据

    本文讲的是神技能!研究人员利用扫描仪成功从物理隔离设备中偷出数据,近日,一组以色列研究人员设计了一种新技术,可以利用扫描仪通过受控恶意软件在气隙系统(air-gapped)中获取用户设备中的数据. 关 ...

最新文章

  1. c语言中较常见的由内存分配引起的错误_内存越界_内存未初始化_内存太小_结构体隐含指针...
  2. 数据绑定表达式(下):.NET发现之旅(二)
  3. 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?
  4. Win10如何取消开机密码
  5. Leetcode--438. 找到字符串中所有字母异位词
  6. qt5 窗体显示完毕信号_iPhone手机信号不好?试试这样设置,随时随地让你的手机信号满格...
  7. 第七章信息系统安全工程考试要点及真题分布
  8. 硬件创新需要去理解的点(精炼总结)
  9. goip技术原理图解_图解电工识图一看就懂
  10. 无限递归替换文件内的某个字符串
  11. DataTable中的数据导出Excel文件
  12. Linux系统网络性能实例分析
  13. 【ERP流程图】:生产制造
  14. kei4的安装教程(附下载地址)
  15. DHCP报文抓包分析
  16. c语言代码混淆器,代码混淆
  17. 我的求学十年(00至10):从中学到大学,年少轻狂立大志
  18. STM32——LCD液晶显示
  19. LAMP架设论坛空间
  20. linux添加core文件位置,Linux生成core文件、core文件路径设置

热门文章

  1. D3.js入门基础教程
  2. 美国 计算机与艺术 专业,美国加州大学圣地亚哥分校计算机与艺术专业.pdf
  3. 单片机硬件电路设计实例分析
  4. SSM框架实现的垃圾分类管理系统+文档
  5. arXiv论文提交流程
  6. globk平差输出选项含义
  7. 浙江工商大学计算机考试科目,浙江工商大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  8. Probability and Stochastic Models(1) —— 研一新课学习笔记
  9. 这个Python游戏库,打开就能玩一天!
  10. matlab直流电动机特性曲线,他励直流电动机的机械特性曲线的分析