zoukankan      html  css  js  c++  java
  • List<model>需要根据特定字段求差集的实现

    list对象不能直接使用Except等封装好的函数,因为内存地址不一样(还有一些数虽然主数据一致但是update/create信息也不一致,对,我碰到的需求就是这么难受 TOT)

    这时候我们的需求很多时候是想通过特定字段来进行比较判断,所以我们需要重写GetHashCode()与Equals(object obj)来进行定义:

            public override int GetHashCode()
            {
                return this.attribute.GetHashCode();
            }
    
            public override bool Equals(object obj)
            {
                return this.attribute== (obj as model).attribute;
            }

    然后  我们就能愉快的求差集了,比如我的需求是list1-list2的集合进行update,list2-list1的集合进行insert:

     //获取差集
                            IEnumerable<T_CME_DifficultHospital> listUpdate = listDatabase.Except(listImport);
                            IEnumerable<T_CME_DifficultHospital> listInsert = listImport.Except(listDatabase);
                            //原数据有数据,但是新导入的没有的更新flag=0
                            foreach (T_CME_DifficultHospital difficultHosp in listUpdate)
                            {
                                difficultHosp.Flag = "0";
                                difficultHosp.UpdateTime = DateTime.Now;
                                difficultHosp.UpdateBy = this.ProcBasePage.CurrentUser.UserAccount;
                                DifficultHospitalManager.Instance.Update(difficultHosp);
                            }
                            //原数据没有该数据,新导入的有,则insert新数据
                            foreach (T_CME_DifficultHospital difficultHosp in listInsert)
                            {
                                DifficultHospitalManager.Instance.Create(difficultHosp);
                            }

    好了~ 收工~~

  • 相关阅读:
    弱智儿童欢乐多游戏android源码完整版
    小龙吃水果游戏IOS源码 V1.0
    PHP实现的轩宇淘宝客系统源码v2.0.1
    友点企业网站管理系统集电脑网站、手机网站、微信三站合一
    仿win8磁贴界面以及功能
    HarestGame史上最难游戏源码 v2.0
    关于js基本类型string
    本周作业
    罗辑思维 怎样成为一个高手
    第18周作业
  • 原文地址:https://www.cnblogs.com/wqtmelo/p/11792754.html
Copyright © 2011-2022 走看看