文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

List对象的比对方法有哪些

2023-06-03 08:59

关注

这篇文章将为大家详细讲解有关List对象的比对方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

需求说明

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

新建一个控制台程序

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

定义一个记录数据条目的类
    public class Class1    {        public string Id { get; set; }        public string Res { get; set; }    }
构建两个List对象
    List<Class1> listA = new List<Class1>    {        new Class1 { Id = "1001", Res = "A1" },        new Class1 {Id = "1002", Res = "A2" },        new Class1 {Id = "1003", Res = "A3" }    };    List<Class1> listB = new List<Class1>    {        new Class1 { Id = "1001", Res = "B1" },        new Class1 {Id = "1002", Res = "B2" },        new Class1 {Id = "1004", Res = "B3" },        new Class1 {Id = "1005", Res = "B4" },    };
两个List对象条目做比对
    // 从listB中找出相对listA新增的    var queryInsert = listB.Where(b =>    {    if (!listA.Any(a => a.Id == b.Id)) return true;    return false;    }).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)) return true;    return false;    }).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)) return true;    return false;    }).ToList();    queryUpdate.ForEach(q =>    {    WriteLine("更新项:" + q.Id + ", " + q.Res);    });
输出结果

List对象的比对方法有哪些

关于“List对象的比对方法有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯