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

发布时间:2025-05-24 16:48:09 作者:益华网络 来源:undefined 浏览量(1) 点赞(1)
摘要:需求说明我们在开发过程中,经常需要对比两个List对象的数据,找出新增、删除、更改的条目。典型的情况如需要根据前端给出的请求列表,与后台表中当前具有的记录做比较,然后对后台表做增、删、改的操作。为此,以下举例总结List对象的比对方法。 新建一个

需求说明

我们在开发过程中,经常需要对比两个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);}); 输出结果

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!