C#判断DataTable1 A列的集合是否为DataTable2 B列的集合的子集

DataSet ds2 = (DataSet)res2.Anything;
// 检查  集合B是否为集合A的子集
var table1MaterialCodes = ds.Tables[2].AsEnumerable().Select(row => row["Code"]).ToList();  //DataSet1 表Code列集合A
var table2MaterialCodes = ds2.Tables[0].AsEnumerable().Select(row => row["MaterialCode"]).ToList(); //DataSet2 表MaterialCode列集合B
bool isSubset = table2MaterialCodes.All(code => table1MaterialCodes.Contains(code));   //判断集合B是否为集合A的子集if (!isSubset)
{
var missingMaterialCodes = table2MaterialCodes.Where(code => !table1MaterialCodes.Contains(code)).ToList();
StringBuilder msg = new StringBuilder();
foreach (var code in missingMaterialCodes)
{// msg.Append(",");msg.Append(code);msg.Append("。");
}msg.Append("显示集合B不在集合A的数据");ShowMessage(msg.ToString(), false);return;}
}
  1. LINQ (Language Integrated Query): LINQ是.NET框架的一部分,它提供了一种查询各种数据源(如数组、集合、XML文档和数据库)的能力,就像查询SQL数据库一样。这里使用的是LINQ to Objects,即对内存中的对象集合进行查询。

  2. bool isSubset: 这是一个布尔变量,用于存储最终的判断结果。如果条件成立(即ds2.Tables[0]的所有materialcode都在ds0.Tables[2]中找到),则isSubsettrue;否则为false

  3. table2MaterialCodes.All(...): All是LINQ中的一个扩展方法,适用于任何实现了IEnumerable<T>接口的类型。它接受一个谓词作为参数(在这个例子中是一个lambda表达式),并检查序列中的所有元素是否都满足这个谓词。如果序列中的每个元素都使这个谓词返回true,那么All方法本身就返回true;如果序列中有任何一个元素使谓词返回falseAll方法就返回false

  4. code => table1MaterialCodes.Contains(code): 这是传递给All方法的谓词,一个lambda表达式。对于table2MaterialCodes列表中的每一个materialcode值,这个表达式都会被求值。code是lambda表达式的参数,代表table2MaterialCodes列表中的当前元素。table1MaterialCodes.Contains(code)是lambda表达式的主体,它检查table1MaterialCodes列表是否包含code。如果包含,表达式返回true;否则返回false

综上所述,这行代码bool isSubset = table2MaterialCodes.All(code => table1MaterialCodes.Contains(code));的作用是:遍历ds2.Tables[0]中的每个materialcode,检查它是否在ds.Tables[0]code列表中。如果所有的materialcode都能在ds.Tables[2]中找到,那么isSubset将为true,表示ds2.Tables[0]中的materialcodeds.Tables[2]code的一个子集。如果有任何一个materialcodeds.Tables[2]中找不到,isSubset将为false

当判断出ds2.Tables[0]中的某些materialcodeds.Tables[2]中不存在时,我们使用LINQ的Where方法配合Contains方法来筛选出那些在ds.Tables[2]中不存在的materialcode。这是通过table2MaterialCodes.Where(code => !table1MaterialCodes.Contains(code)).ToList()这行代码完成的,它会生成一个列表missingMaterialCodes,包含了所有在ds.Tables[2]中找不到的materialcode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/715684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024免费mac苹果电脑的清理和维护软件CleanMyMac X

对于 Mac 用户来说&#xff0c;电脑的清理和维护是一件让人头疼的事情。但是&#xff0c;有了 CleanMyMac X&#xff0c;这一切都将变得轻松愉快。CleanMyMac X 是一款专为 Mac 设计的电脑清理软件&#xff0c;它以其强大的功能和简单的操作&#xff0c;让无数用户为之倾倒。 C…

艾尔登法环备份存档方法

1.PC端使用WinR输入%AppData%\EldenRing 2.如图创建文件夹“我这取名叫备份存档”&#xff0c;将其中的三个文件复制到新建的文件夹中 3.理论上只需要备份替换ER0000.sl2文件即可

【双指针】合并两个有序数组O(N)

合并两个有序数组 链接 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/merge-sorted-array/ 题目 题解 采用双指针…

青少年CTF擂台挑战赛 2024 #Round 1 Web方向题解 WP 全

EasyMD5 题目描述&#xff1a;php没有难题 考点总结&#xff1a;脑洞题目&#xff0c;不如我出&#xff08;狗头 只允许两个都上传pdf文件。 文件还不能太大了。burp多次发包发现要求两个pdf内容不一样 不一样时候&#xff0c;提示我们MD5碰撞。 科学计数法绕过 PHP的后门 …

把Anaconda添加进环境变量的方法(解决pip识别不到环境的问题)

找到你的Anaconda的安装根目录 比如我的是在&#xff1a;C:\ProgramData\Anaconda3 那么只需要将以下目录添加进环境变量即可&#xff1a; C:\ProgramData\Anaconda3C:\ProgramData\Anaconda3\ScriptsC:\ProgramData\Anaconda3\Library\binC:\ProgramData\Anaconda3\condabin…

吴恩达deeplearning.ai:通过偏差与方差进行诊断

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 文章目录 偏差与方差高偏差高方差合适的模型理解偏差与方差 总结 当你构建神经网络的时候&#xff0c;几乎没有人能够在一开始就将神经系统构建得十分完美。因此构建神经网络最重要的是直到…

Vue2实现tab切换

Vue2实现tab切换 以下代码实现了一个tab切换的功能&#xff0c;点击不同的tab会切换到对应的内容&#xff0c;并且选中的tab文字带下划线&#xff0c;下划线宽度比文字宽度短&#xff0c;并且与文字居中。 <template><div><div class"tabs"><…

惯性传感器的倾角计算

惯性传感器单元 IMU IMU 是 Inertial Measurement Unit 的缩写, 直接翻译过来就是惯性测量单元, 常见的有单独的三轴加速度(Accelerometer)计 ADXL345, L3G4200D, L3GD20等, 单独的三轴角速度计(又称陀螺仪, Gyroscope) LIS3DH, L3GD20H, BMG160, 以及包含了加速度计和陀螺仪的…

Qt 简约又简单的加载动画 第七季 音量柱风格

今天和大家分享两个音量柱风格的加载动画,这次的加载动画的最大特点就是简单,只有几行代码. 效果如下: 一共三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc…

寻找峰值[中等]

优质博文IT-BLOG-CN 一、题目 峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设nums[-1] nums[n] -∞。 你…

python统计分析——泊松回归

参考资料&#xff1a;用python动手学统计学 概率分布为泊松分布、联系函数为对数函数的广义线性模型叫作泊松回归。解释变量可以有多个&#xff0c;连续型和分类型的解释变量也可以同时存在。 1、案例说明 分析不同气温与啤酒销量的关系。构造不同气温下的销量的数学模型&…

Java之美[从菜鸟到高手演变]之Json类型数据的处理

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式&#xff0c;但是也使…

Unity--自动版面(Horizontal Layout Croup)||Unity--自动版面(Vertical Layout Group)

Unity--自动版面&#xff08;Horizontal Layout Croup&#xff09; Horizontal Layout Croup&#xff1a; “水平布局组”组件将其子布局元素并排放置。它们的宽度由各自的最小&#xff0c;首选和灵活的宽度决定&#xff0c;具体取决于以下模型&#xff1a; 所有子布局元素的…

el-form里面表单遍历渲染,里面放el-row,一行放3个表单怎么实现

需求&#xff1a; 需要实现 el-form里面的表单遍历渲染&#xff0c;里面放el-row,一行放3个表单怎么实现&#xff1f; 废话不多说直接上demo <el-form ref"form" :model"form" label-width"80px"><el-row v-for"(row, index) in M…

服务器硬件基础知识全解析

在信息技术日新月异的今天&#xff0c;服务器作为数据处理和存储的核心&#xff0c;其重要性不言而喻。了解服务器硬件基础知识&#xff0c;对于IT从业者以及广大技术爱好者来说&#xff0c;都是不可或缺的技能。本文将详细解析服务器硬件的基础知识&#xff0c;帮助读者建立起…

BUGKU bp

打开环境&#xff0c;他提示了弱密码top1000&#xff0c;随便输入密码123抓包爆破 发现长度都一样&#xff0c;看一下响应发现一段js代码&#xff0c;若r值为{code: bugku10000}&#xff0c;则会返回错误&#xff0c;通过这一句“window.location.href success.php?coder.cod…

计算机二级Python刷题笔记------基本操作题11、14、17、21、30(考察列表)

文章目录 第十一题&#xff08;列表遍历&#xff09;第十四题&#xff08;len&#xff09;第十七题&#xff08;len、insert&#xff09;第二十一题&#xff08;append&#xff09;第三十题&#xff08;二维列表&#xff09; 第十一题&#xff08;列表遍历&#xff09; 题目&a…

mysql数据库root权限读写文件

如果没有shell&#xff0c;只有数据库权限的情况下&#xff1a; 1. udf 提权提示没有目录&#xff1a;使用数据流创建目录 1. select xxx into outfile C:\\phpstudy_pro\\Extensions\\MySQL5.5.29\\lib\::$INDEX_ALLOCATION;2. select xxx into outfile C:\\phpstudy_pro\…

springcloud和基础服务的搭建以及封装

代码仓库地址&#xff1a;https://github.com/zhaoyiwen-wuxian/springcloud-common page分页也进行了封装&#xff0c;只需要添加到pom中&#xff0c;将会自动进行分页&#xff0c;并且后端不需要写任何的分页数据。只需要前端自己传分页参数即可&#xff0c;并且里面封装了很…

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列&#xff08;2&#xff09;——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…