首页 > 代码库 > 关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧
关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧
项目中用到了对两个集合的帅选等操作,简单总结下
1.Linq操作多个Datable
可以通过AsEnumerable()方法对DataTable进行Linq操作
//获取数据表所有数据 DataTable allJDt = GetDbDataTable(m_DBFile, "select * from 监测点"); //所有插入的数据 DataTable jAddDt = dt.AsEnumerable() .Where(n => n.Field<string>("TableName") == "监测点") .Where(m => m.Field<string>("Operation") == "Insert") .AsEnumerable(); //根据主键帅选所有插入的数据 DataTable jcaddDt = allJDt.AsEnumerable() .Where( x => jAddDt.AsEnumerable() .Select(a => a.Field<string>("KeyFld")) .Any(a => x.Field<string>("Name").Contains(a))); //筛选表所有修改的数据(差集) DataTable DjcModifyDt = allJDt.AsEnumerable().Except(jcaddDt.AsEnumerable());
2.Linq操作多个List
得到一组List主键,根据这个主键集合帅选出满足条件的数据集合。
//所有数据 List<sys_Right_Navigation> rlistList =GetAllList(); //跟据组GroupID条件获取所有的主键 List<int> gMist = rlistList .Where(n => n.GroupID == gID).Select(a => a.ModuleID).ToList(); //这组的所有模块id if (gMist.Count() > 0) { //根据主键list帅选满足条件的集合 rlistList = rlistList .Where(x => gMist.Any(p => p == x.ModuleID)).ToList(); }
关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。