公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

在 C# 中使用 except 和 intersect 比較集合

admin
2024年12月2日 9:45 本文熱度 1000

前言

.NET 提供了集合類型,它存儲了一組數據。我們有時會在兩個集合中進行比較,匹配或不不匹配的元素。本文探討ExceptIntersect兩個用來比較兩個集合中的唯一元素和找出不匹配的元素擴展方法。

except

except是在二個集合比較中,找出在第一集合中有而第二個集合中沒有的元素集,這種操作我們可稱求差集。

例如:我們有兩個用戶實體列表集合,當需要找出一個列表中可用,但在第二個列表中不可用的元素時。則可以使用except方法來實現。下面為示例代碼:

定義用戶實體類:

public class User{ public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } public string Mobile { get; set; } public string Password { get; set; }}

定義二個用戶實體列表:

// 第一個列表集合List<User> szUsers = new(){    new User { Id = 1001, Name = "李華", Mobile = "13698765432", Email = "[email protected]",Password="lh123456" },    new User { Id = 1002, Name = "小明", Mobile = "13677765432", Email = "[email protected]",Password="xm123456" },    new User { Id = 1003, Name = "小米", Mobile = "123588887654", Email = "[email protected]",Password="xm123456" }};// 第二個列表集合List<User> gzUsers = new(){    new User { Id=1004, Name="李華", Mobile="13698765432", Email="[email protected]",Password="lh123456"},    new User { Id=1005, Name="小明", Mobile="13677765432", Email="[email protected]",Password="xm123456" },    new User { Id=1006, Name="小強", Mobile="13499987654", Email="[email protected]",Password="xq123456" }};

使用except 實現比較

using System.Text.Encodings.Web;using System.Text.Json;namespace Fountain.WinConsole.ExampleDemo{    internal class Program    {        static void Main(string[] args)        {            // 配置選項            var options = new JsonSerializerOptions            {                // 允許字符通過而不進行轉義方面更加寬松                Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping            };            // 比較每個元素,直接使用整個集合            List<User> diffnCollection = szUsers.Except(gzUsers).ToList();            Console.WriteLine($"不匹配集合:\r\n{JsonSerializer.Serialize(diffnCollection, options)}");            Console.WriteLine();            // 根據一些選定的元素檢查未匹配的元素            var unMatchedElements = szUsers.Select(s => new { s.Mobile, s.Email }).Except(gzUsers.Select(s => new { s.Mobile, s.Email })).ToList();            Console.WriteLine($"不匹配元素:\r\n{JsonSerializer.Serialize(unMatchedElements, options)} ");            Console.WriteLine();            List<User> mismatchedCollection = szUsers.Where(x => unMatchedElements.Any(a => a.Email == x.Email) && unMatchedElements.Any(a => a.Mobile == x.Mobile)).ToList();            Console.WriteLine($"不匹配集合:\r\n{JsonSerializer.Serialize(mismatchedCollection, options)}");            Console.ReadKey();        }    }}

intersect

intersect是二個集合比較中,找出在第一集合與第二個集合中共有的元素集,這種操作我們可稱求交集。

例如:我們有兩個用戶實體列表集合,當需要找出二個列表中相同元素時。則可以使用intersect方法來實現。下面為示例代碼:

using System.Text.Encodings.Web;using System.Text.Json;namespace Fountain.WinConsole.ExampleDemo{    internal class Program    { static void Main(string[] args)        { // 配置選項            var options = new JsonSerializerOptions            {                // 允許字符通過而不進行轉義方面更加寬松                Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping            };            // 使用 intersect 匹配比較            var matchedElesments = szUsers.Select(s => new { s.Mobile, s.Email }).Intersect(gzUsers.Select(s => new { s.Mobile, s.Email })).ToList();            Console.WriteLine($"匹配元素: \r\n{JsonSerializer.Serialize(matchedElements, options)}");            Console.WriteLine();            //             List<User> matchedCollection = szUsers.Where(x => matchedElements.Any(a => a.Email == x.Email) && matchedElements.Any(a => a.Mobile == x.Mobile)).ToList();            Console.WriteLine($"匹配集合: \r\n{JsonSerializer.Serialize(matchedCollection, options)}");            Console.ReadKey();        }    }}

下面再使用一個簡單示例,演示了如何使用 Intersect 方法來獲取兩個集合的交集:

using System;using System.Collections.Generic;namespace Fountain.WinConsole.ExampleDemo{ class Program    {        static void Main()        {            // 創建兩個集合 List<int> intList = new List<int> { 1, 2, 3, 4, 5 }; List<int> list = new List<int> { 4, 5, 6, 7, 8 };            // 使用 Intersect 方法獲取交集 List<int> intersection = intList.Intersect(list).ToList();            // 輸出交集            Console.WriteLine("匹配集合: " + string.Join(", ", intersection));        }    }}

小結

以上,通過使用except方法和intersect方法實現兩個集合比較示例,了解其使用方法。它們在對集合進行比較時,也是可以使用的方式。


該文章在 2024/12/2 9:45:01 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 丰满白嫩的大屁股xxxxx视频 | 国产成人aa精品一区在线播放 | 国产片婬乱一毛片a | 国产成人无码āā精品一区 | 国产91成人免费网站 | 国产av成人 | 国产精品乱在线观看 | 1024在线视频精品观看 | 精品少妇人妻av免费 | 国产精品爽爽va吃奶在线观看 | 国产免费无遮挡美女 | 国产成人三级在线视频网站观看 | 国产人与动 | 国产成人午夜福利在线观看者 | 国产午夜福利片1000无码 | 国产激情久久久久久老熟女影视 | 国产在线一区小视频 | 国产精品白浆在线观看无码专区 | 国产三级在线视频网址 | 国产精品va一级二级三级电影 | 成人免费a级毛片无码片 | 成人α片免费视频在线观看 | 精品2025露脸国产偷人在视频 | 国产精品白丝喷水在线观看者相 | 国产精品嫩草影 | 成人午夜毛片一区二区 | 国产在线观看精 | 国产一视频在线观看 | 国产三级国产精品午夜 | 国产做a爰片毛片a片美国 | 91精品国产自产91精品蜜臀 | 国产精品自拍视频合集 | 99久久亚洲综合精品成人网 | 国产成人一区二区三区综合区 | 福利片在线观看 | 高清精品一区 | 国产日韩一区二区三区免费高清 | 国产成人精品免费大全 | 国产精品欧美亚洲日本综合 | 国产片婬乱一级 | 国产精品蜜桃在线观看 |