比较两个List对象,找出新增、删除、更改的条目

IT科技类资讯2025-11-05 06:21:5737
需求说明

我们在开发过程中,比较经常需要对比两个List对象的对象的条数据,找出新增、找出删除、新增更改的删除条目。典型的更改情况如需要根据前端给出的免费信息发布网请求列表,与后台表中当前具有的比较记录做比较,然后对后台表做增、对象的条删、找出改的新增操作。为此,源码库删除以下举例总结List对象的更改比对方法。

新建一个控制台程序

新建一个控制台程序作为例子。比较

定义一个记录数据条目的对象的条类publicclassClass1{publicstringId{get;set;}publicstringRes{get;set;}} 构建两个List对象List<Class1> listA =newList<Class1>{newClass1{Id="1001",Res="A1"},newClass1{Id="1002",Res="A2"},newClass1{Id="1003",Res="A3"}};List<Class1> listB =newList<Class1>{newClass1{Id="1001",Res="B1"},newClass1{Id="1002",Res="B2"},newClass1{Id="1004",Res="B3"},newClass1{Id="1005",Res="B4"},}; 两个List对象条目做比对// 从listB中找出相对listA新增的var queryInsert = listB.Where(b =>{if(!listA.Any(a => a.Id== b.Id))returntrue;returnfalse;}).ToList(); queryInsert.ForEach(q =>{WriteLine("新增项:"+ q.Id+", "+ q.Res);});WriteLine();// 从listA中找出相对listB删除的var queryDelete = listA.Where(a =>{if(listB.All(b => b.Id!=a.Id))returntrue;returnfalse;}).ToList(); queryDelete.ForEach(q =>{WriteLine("删除项:"+ q.Id+", "+ q.Res);});WriteLine();// 从listB中找出相对listA更新的var queryUpdate = listB.Where(b =>{if(listA.Any(a => a.Id== b.Id))returntrue;returnfalse;}).ToList(); queryUpdate.ForEach(q =>{WriteLine("更新项:"+ q.Id+", "+ q.Res);}); 输出结果

企商汇
本文地址:http://www.bzuk.cn/news/867c39098742.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

如何制作U盘启动盘(简单易行的步骤帮您快速制作一枚U盘启动盘)

探索新款iPad32G金色的卓越之处(激发创造力、提升用户体验,全面解析新款iPad32G金色)

探索游戏新境界——以Heliop10玩游戏的乐趣(突破极限,沉浸虚拟世界,探索更多可能性)

一体机组装教程(简单、快捷、实用!快来学习如何组装一台属于自己的一体机吧!)

免费转换PDF为Word的最佳方法(绝对免费的PDF转Word工具推荐)

ISO镜像系统刷机教程(轻松学会刷机,为你的设备注入新生命!)

联想笔记本系统分区教程(轻松学会联想笔记本系统分区设置)

探索联想U330P的性能与使用体验(一款强劲轻薄的笔记本电脑)

友情链接

滇ICP备2023006006号-33