博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对比两个同类型的泛型集合并返回差异泛型集合 ——两个List<类名>的比较
阅读量:7042 次
发布时间:2019-06-28

本文共 2094 字,大约阅读时间需要 6 分钟。

1:  /// 
2:  /// 对比两个同类型的泛型集合并返回差异泛型集合
3:  /// 
4:  /// 
泛型类型
5:  /// 修改后的数据集合
6:  /// 原始数据集合
7:  /// 
返回与原始集合有差异的集合
8:  public static List
GetModiflyList
(List
newModel, List
oldModel)
9:  {
10:      List
list = new List
();
11:      foreach (T newMod in newModel)
12:      {
13:          bool IsExist = false;
14:          foreach (T oldMol in oldModel)
15:          {
16:              //取得老实体对象的属性集合
17:              PropertyInfo[] pi = oldMol.GetType().GetProperties();
18:              //定义记数器
19:              int i = 0;
20:   
21:              //将老实体对象的没一个属性值和新实体对象进行循环比较
22:              foreach (PropertyInfo p in pi)
23:              {
24:                  //防止object.Equals时实例化对象发生异常
25:                  object o_new = newMod.GetType().GetProperty(p.Name).GetValue(newMod, null);
26:                  if (o_new == null)
27:                      o_new = (object)String.Empty;
28:   
29:                  //防止object.Equals时实例化对象发生异常
30:                  object o_old = p.GetValue(oldMol, null);
31:                  Type type = o_old.GetType();
32:                  if (type.Name == "ExtensionDataObject")
33:                  {
34:                      i++;
35:                  }
36:                  if (o_old == null)
37:                      o_old = (object)String.Empty;
38:   
39:                  //新老实体比较并记录成功次数
40:                  if (object.Equals(o_new, o_old))
41:                  {
42:                      i++;
43:                  }
44:                  //若成功次数和属性数目相等则说明已经存在或者没有发生过修改条出循环
45:                  if (i == pi.Length)
46:                  {
47:                      IsExist = true;
48:                      break;
49:                  }
50:              }
51:   
52:              //没有发生过修改条出循环
53:              if (IsExist)
54:                  break;
55:          }
56:   
57:          //如果不存在则添加该实体到List
58:          if (!IsExist)
59:              list.Add(newMod);
60:   
61:      }
62:      return list;
63:  }

转载地址:http://qpxal.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Android第五课 编译错误分析
查看>>
VS_远程调试
查看>>
博为峰Java技术题 ——JavaSE Java实现在不同编码之间进行文件转换
查看>>
Throws与Throw
查看>>
php趣味编程 - php求黑色星期五
查看>>
zabbix安装
查看>>
ELK之权限管理
查看>>
×_7_12_2013 I: Light on or off
查看>>
JIT
查看>>
巧用escalations限制Nagios报警次数 - [Nagios
查看>>
Entity SQL与LINQ TO Entity的本质区别
查看>>
python unittest 深入failfast及实际应用【示例】
查看>>
MSSQL中文排序规则设置
查看>>
30 个有关 Python 的小技巧
查看>>
CDN下nginx获取用户真实IP地址
查看>>
Jsp技术总结
查看>>
Sakai 11.x Build Failure
查看>>
面向对象+模块化设计绘制canvas星空动画
查看>>
Elastic Search学习笔记3——集群配置
查看>>