获取两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情



//获取第一个数据源DataTable
        DataTable dt1 = DBHelper.GetDataTable("select top 10  ksdid,user_id,user_pwd from ksd_user_info");
       
        IEnumerable<DataRow> query1 = dt1.AsEnumerable().Where(t => t.Field<string>("user_id").StartsWith("66")).ToList();
        //获取第二个数据源DataTable
        DataTable dt2 = query1.CopyToDataTable();
       
        /*
        //比较两个数据源的交集
        IEnumerable<DataRow> query2 = dt1.AsEnumerable().Intersect(dt2.AsEnumerable(), DataRowComparer.Default);
        //两个数据源的交集集合      
        DataTable dt3 = query2.CopyToDataTable();
       

        //获取两个数据源的并集
        IEnumerable<DataRow> query2 = dt1.AsEnumerable().Union(dt2.AsEnumerable(), DataRowComparer.Default);
        //两个数据源的并集集合
        DataTable dt3 = query2.CopyToDataTable();
          */

        //获取两个数据源的差集
        IEnumerable<DataRow> query2 = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default);
        //两个数据源的差集集合
        DataTable dt3 = query2.CopyToDataTable();


求两个数组之间的交集
            string daterange1 = "2010-1-3 2010-4-1/2010-5-1 2010-7-1/2010-9-10/2010-10-30 2010-11-10";
            string daterange2 = "2010-2-1 2010-3-2/2010-6-1 2010-8-10/2010-9-1 2010-9-20/2010-10-2 2010-10-7/2010-10-30 2010-11-10";

            string[] date1 = daterange1.Split('/');
            string[] date2 = daterange2.Split('/');

            //string[] jiaoji = date1.Intersect(date2).ToArray();
LINQ核心操作符深度解析:集合运算、Zip对齐、转换固化与生成器 LINQ是C#中实现函数式查询的核心能力,其本质是基于IEnumerable<T>的延迟执行表达式管道。理解Concat/Union集合运算符的关系代数语义、Zip的位置同步机制、ToArray/ToDictionary等转换方法的立即求值特性,以及Empty/Range等生成器的惰性构造原理,是掌握.NET数据处理范式的基石。这些操作符直面类型协变边界、泛型运行时行为、内存分配策略等底层工程问题,在EF Core查询优化、高发数据对齐、缓存策略设计等真实场景中决定系统稳定性与性能表现。本文聚焦LINQ 阅读详情

相关推荐

C# 两个datatable中的数据快速比较返回交集 差集

C# 两个datatable中的数据快速比较返回交集 差集 网上的例子。但没有实例下载。新人有点难明白。对初学者还是有点难。完整源码。让新人学习。

C#两个结构一样的Datatable对比去重(差集

C#两个结构一样的Datatable对比去重(差集

u013262853的博客 1977

C# 获取两个DataTable交集差集

//IEnumerable<DataRow> QOld = vDTOld.AsEnumerable().ToList(); ////比较两个数据源的交集 //IEnumerable<DataRow> QJJ = vDTOld.AsEnumerable().Intersect(DTNew.AsEnumera...

dengweituo2669的博客 2539

DATATALE 进行合

DataTable操作工具类DataTableHelper using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; namespace CNKI.TPI.Web.Base { public class DataTableHelper { public static DataTable SplitDataTable(Data

hyq_07_27的博客 411

2025 AI测试开发实战:大模型测试与Prompt评估方法

软件测试行业正经历AI带来的深刻变革,传统自动化测试在面对大模型应用时,常常因无法有效断言而失效。AI测试开发由此成为连接测试工程与人工智能的关键能力,它要求从业者既懂传统测试体系,又能针对模型行为设计测试方案。核心思路是分层测试:功能层沿用常规自动化工具,模型行为层关注正确性、稳定性与无害性,评估体系层则通过构建评测与LLM as a Judge等方法量化模型输出质量。Prompt测试作为新兴技能,需覆盖一致性、边界注入与版本回归,而AI辅助测试开发则通过结构化提问提升用例生成效率。这些方法最终可成到

weixin_33910460的博客 435

两个DataTable之间差集交集集合(ExceptIntersectUnion)

//获取第一个数据源DataTable DataTable dt1 = DBHelper.GetDataTable("select top 10 ksdid,user_id,user_pwd from ksd_user_info"); IEnumerable<DataRow> query1 = dt1.AsEnumera...

weixin_30525825的博客 205

DAX圣经学习笔记2 - 关于表的基础知识

DAX

chichi_magic的博客 709

python正则匹配ipv4_匹配IP地址的正则表达式 (转)

Android开发学习——画横线竖线画横线/竖线 竖线 android 深入研究ratingbar自定义http://blog.csdn.net/rain_butterfly/article/details/22892879DataTable添加行和列tablenullobjectdatasetc#c 手动插入一行数据 DataSet ds = tTalent.GetAllInfo(); ...

weixin_39637203的博客 279

DataTable数据对比

开发中我们经常会出现查询数据库后返回DataTable的情况,那么DataTable中常用的一些操作阁下又了解多少呢,例如:两个结构不同DataTable怎么找出他们俩之间交集差集

技术分享博客 2774

DataTable与List之间交集差集

C# 项目中经常遇到这样的情况:选定的项与原DataTable中的数据进行对比,将数据变动部分利用Adapter写入数据库。 对于同一类型的而言很容易实现,而对于不同类型而言则看似复杂,实则也很简单 以下是交集代码: public partial class Program { static void Main(string[] args)

larry_wen的博客 1386

C# 高效比较两个DataTable数据差异化

假如有两个DataTable表格分别是dt1,dt2,dt2中有些数据跟dt1一样,现在想找出dt2的数据在dt1中不存在的数据(换句话也可以说dt2删除已经存在于dt1中的数据),传统思想可能直接用循环找差异,这种是非常低效的做法,数据量少无所谓,数据量大,简直要了程序猿老命,既然直接循环查找不可,那么有没有高效一点的做法呢(废话,凑数字用,当然是有了),C# linq 中IEnumerable 提供了Expect(差集)的方法,众所周知,DataTable提供了AsEnumerable()的转换方法

涛神-Dev 的博客 2万+

C# 两个 DataTable

C# 两个 DataTable

Prince的博客 1737

vb.netDataTable差集和遍历DataRow的方法

Dim row As DataRow Dim rows As DataRow() For Each row In DataTable1.Rows rows = DataTable2.Select("DataTable1的列名=" &amp; row(0).ToString.Trim ) '条件 If Not rows.Length = 0 Then '差集 ...

ZHENG 5157
上一篇: exchange webservice访问类(日程新增和删除)
下一篇: css改变hr颜色
amohan
博客等级 码龄16年 89粉丝 79原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值