关于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() > )
{
//根据主键list帅选满足条件的集合
rlistList = rlistList .Where(x => gMist.Any(p => p == x.ModuleID)).ToList();
}
关于Linq对DataTable和List各自的两个集合筛选的相关操作技巧的更多相关文章
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...
- linq to datatable 和lambda查询datatable
用Linq查询DataTable static DataTable table = new DataTable(); static DataColumn dc = new DataColumn(); ...
- (转)C#用Linq实现DataTable的Group by数据统计
本文转载自:http://www.cnblogs.com/sydeveloper/archive/2013/03/29/2988669.html 1.用两层循环计算,前提条件是数据已经按分组的列排好序 ...
- Linq查询datatable的记录集合
通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...
- LINQ返回DataTable类型 list转dataset 转换为JSON对象
using System.Web.Script.Serialization; using System.Collections.Generic; using System.Reflection; us ...
- LinQ实现DataTable不定行转列 行列转换,有图
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LinqDemo2.aspx.c ...
- DataTable,List,Dictonary互转,筛选及相关写法
1.创建自定义DataTable /// 创建自定义DataTable(一) 根据列名字符串数组, /// </summary> /// <param name="sLi ...
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- DataTable填补了实体类返回泛型集合
坤哥见我昨天找了一段代码,如下面: 略微解释下,这段代码时D层查询结束后,将datatable查询到的结果赋值给实体对象的属性,然后返回实体的过程.坤哥看了之后问我,假设实体有500多个属性,难道也要 ...
随机推荐
- [转]你知道用AngularJs怎么定义指令吗?--很详细
前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方. Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...
- 一行删除所有docker container的命令
ns=`docker | awk '//{print $1}'`;for n in $ns;do docker rm -f $n;done docker | awk '{print $1}'|xarg ...
- Python学习笔记 - MySql的使用
一.安装MySql模块 Python2.X pip install MySQLdb Python3.X pip install pymysql 二.数据库连接接口 由于Python统一了数据库连接的接 ...
- composer的安装和使用
由于工作中需要用到leancloud的LeanCloud PHP SDK,支持composer安装,所以就下载composer工具了, 安装之前可以用composer命令检测是否已经安装了,命令是:c ...
- Ubuntu 下 ROS Kinetic 的安装
安装环境为 Ubuntu 16.04 配置 Ubuntu 软件仓库 打开“设置”中的“软件和更新” 把 “restricted”.“universe” 和 “multiverse” 这三项勾上 勾完后 ...
- debian7 安装VMware Tools
前提:需要安装gcc.kernel 1. apt-get install gcc 2. apt-get install kernel 问题描述: 安装时如果提示更换介质 :请把标有 " de ...
- 1106SQLserver基础--变量、运算符的使用,if...else,while语句
数据库---变量(对数据库中的数据没有任何影响) 作用:临时存储数据的作用,起一个衔接的作用,为了方便理解存储过程. 例:Declare @hello varchar(20) Set @hello=’ ...
- sqlplus--sqlldr命令参数详解
sqlplus--sqlldr参数详解 sqlldr,Oracle快速导入数据的工具,是sqlplus的指令,不是sql语法里的东西. 一.下面是SQL*LOADER的基本特点:1)能装入不同数据类型 ...
- 【总结整理】高德LBS开放平台学习
高德LBS开放平台地址 http://lbs.amap.com/api/javascript-api/guide/create-map/mapstye 概述->示例中心Demo体验-> ...
- require()和include()代码重用
第五章 require()函数和include()函数几乎是相同的,二者唯一的区别在于函数失败后,require()函数将给出一个致命的错误,而include()只是给出一个警告. require_o ...