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.pswp.cn/news/715684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715684.shtml
英文地址,請注明出處:http://en.pswp.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 其他配置 參考文獻 一、前言 在前面的文章中&…