可以自定义类 ,也可以从参考官网文档:Enumerable.Except 方法 (System.Linq) | Microsoft Learn

List<DataRow> list1 = new List<DataRow>();
List<DataRow> list2 = new List<DataRow>(); DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string)); DataRow row1 = dataTable.NewRow();
row1["ID"] = 1;
row1["Name"] = "Alice";
list1.Add(row1); DataRow row2 = dataTable.NewRow();
row2["ID"] = 2;
row2["Name"] = "Bob";
list1.Add(row2); DataRow row3 = dataTable.NewRow();
row3["ID"] = 1;
row3["Name"] = "Alice";
list2.Add(row3); DataRow row4 = dataTable.NewRow();
row4["ID"] = 3;
row4["Name"] = "Dave";
list2.Add(row4); List<DataRow> result = list1.Except(list2, new DataRowComparer("ID")).ToList();
list1 = list1.Where(row => !list2.Contains(row, new DataRowComparer("ID"))).ToList();
list1.RemoveAll(row => list2.Contains(row));
foreach (DataRow row in list1)
{
Console.WriteLine(row["Name"]);
} class DataRowComparer : IEqualityComparer<DataRow>
{
private readonly string _columnName; public DataRowComparer(string columnName)
{
_columnName = columnName;
} bool IEqualityComparer<DataRow>.Equals(DataRow?x, DataRow?y)
{
if (x == null || y == null)
{
return false;
} return x[_columnName].Equals(y[_columnName]);
} int IEqualityComparer<DataRow>.GetHashCode(DataRow obj)
{
return obj[_columnName].GetHashCode();
}
}

C# Linq俩个list<Datarow> 取差集,并自定义字段的更多相关文章

  1. 关于 js 2个数组取差集怎么取

    关于 js 2个数组取差集怎么取? 例如求var arr1 = [1]; var arr2 = [1,2];的差集方法一: Array.prototype.diff = function(a) { r ...

  2. mysql取差集、交集、并集

    mysql取差集.交集.并集 博客分类: Mysql数据库 需求:从两个不同的结果集(一个是子集,一个是父集),字段为电话号码phone_number,找出父集中缺少的电话号码,以明确用户身份. 结合 ...

  3. [转载]EF或LINQ 查询时使用IN并且根据列表自定义排序方法

    原文地址:EF或LINQ 查询时使用IN并且根据列表自定义排序方法作者:李明川 EF和LINQ改变了原有的手写SQL时期的一些编码方法,并且增强了各数据库之间的移植性简化了开发时的代码量和难度,由于很 ...

  4. javascript 取掉空格自定义函数

    js  取掉空格自定义函数 //取掉左右空格: function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } // ...

  5. 详解usbmon抓取的log各字段的含义

    详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...

  6. Linq 取差集 交集等

    string goodsList = context.Request.Form["goodsList"]; if (!string.IsNullOrEmpty(goodsList) ...

  7. hive表格取差集

    hive 求两个集合的差集 业务场景是这样的,这里由两个hive表格A和B A的形式大概是这样的:uid B的形式大概是这样的:uid 我想要得到存在A中但是不存在B中的uid 具体代码如下 sele ...

  8. Linq to Sql 左连接 , 取右表可能为 null的 int类型字段

    linq to sql , linq to entity 遇到一个问题, 主表, 从表 一对一 关系,  主表有记录, 从表 可能没有记录. 现在要查询 主表+从表 的某几个字段. 从表字段 有的是 ...

  9. SQL中对于两个不同的表中的属性取差集except运算

    SQL中对两个集合取差集运算,使用except关键字,语法格式如下: SELECT column_name(s) FROM table_name1 EXCEPT SELECT column_name( ...

  10. Oracle Minus 取差集

    Oracle Minuskeyword SQL中的MINUSkeyword SQL中有一个MINUSkeyword,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有 ...

随机推荐

  1. 大模型高效微调详解-从Adpter、PrefixTuning到LoRA

    一.背景 目前NLP主流范式是在大量通用数据上进行预训练语言模型训练,然后再针对特定下游任务进行微调,达到领域适应(迁移学习)的目的. 指令微调是预训练语言模型微调的主流范式 其目的是尽量让下游任务的 ...

  2. jquery中.html(),.text()和.val()的差异总结

    .html(),.text(),.val()三种方法都是用来读取选定元素的内容: .html()是用来读取元素的html内容(包括html标签): .text()用来读取元素的纯文本内容,包括其后代元 ...

  3. Splashtop 支持对 Adobe Creative Cloud 视频应用程序的远程访问

    快讯:Splashtop 为 Adobe Creative Cloud 视频和音频产品的用户提供了对其工作站的高性能远程访问,使他们能够在家中工作. 程访问和远程支持解决方案的领导者 Splashto ...

  4. AIRIOT大学计划暑期训练营圆满结束,产教融合培养物联网产业人才

    ​ 为促进物联网产业的纵深发展和创新,推进教育链.产业链与创新链的有机衔接,提高学生理论.实践和创新能力,7月3日-7月28日,由航天科技控股集团股份有限公司(简称"航天科技")开 ...

  5. vue项目使用研究1

    在windows上安装了npm vue-cli之后,创建vue项目. 用pycharm打开 vue form表单最简单提交方法 <!DOCTYPE html> <html lang= ...

  6. 微信小程序订阅消息开发指南(java)

    微信小程序订阅消息开发指南(java) 第一步 准备阶段 1.你得有一个小程序,并且认证了,个人的也行 2.开通订阅消息 小程序后台->功能->订阅消息 3.公共模板库选择一个模板 选择的 ...

  7. PHP 网络通信底层原理分析

    一.引言 我们日常的程序开发大多数都是以业务为主,很少会接触到底层逻辑.对于我们程序员来说,了解程序的底层运行逻辑,更有助于提升我们对程序的理解.我相信大多数的人,每天基本上都是完成业务需求.当然,完 ...

  8. QShop商城-快速开始-uni-app小程序

    QShop商城-快速开始-uni-app小程序 工具准备 HBuilderX 此项目为UniApp开发,开发工具为HBuilderX,下载地址: https://hx.dcloud.net.cn/Tu ...

  9. 自动化测试在 Kubernetes Operator 开发中的应用:以 OpenTelemetry 为例

    背景 最近在给 opentelemetry-operator提交一个标签选择器的功能时,因为当时修改的函数是私有的,无法添加单测函数,所以社区建议我补充一个 e2e test. 因为在当前的版本下,只 ...

  10. Linux和Windows时间不一致问题

    问题描述 装过双系统或者虚拟机装Linux的人都知道,Linux的时间和Windows往往是不同步的,在编写跨平台程序的时候特别是对时间敏感的代码就带来很大的困扰 解决办法 这个问题可以在Linux下 ...