C# 比力两个聚集和比力对象

打印 上一主题 下一主题

主题 1831|帖子 1831|积分 5493

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、比力聚集
        
  1. /// <summary>
  2. /// 比较两个集合
  3. /// </summary>
  4. /// <typeparam name="T"></typeparam>
  5. /// <param name="list1"></param>
  6. /// <param name="list2"></param>
  7. /// <returns></returns>
  8. public static bool EqualList<T>(this List<T> list1, List<T> list2)
  9. {
  10.     return list1 == null && list2 == null || list1 != null && list1.SequenceEqual(list2);
  11. }
复制代码
      2、比力对象,对象实现IEquatable接口
        
  1. public class Model: IEquatable<Model>
  2. {
  3.     public int Id { get; set; }
  4.     public string Name { get; set; }
  5.     public List<string> List { get; set; }
  6.     public bool Equals(Model obj)
  7.     {
  8.         //this非空,obj如果为空,则返回false
  9.         if (ReferenceEquals(null, obj)) return false;
  10.         //如果为同一对象,必然相等
  11.         if (ReferenceEquals(this, obj)) return true;
  12.         //如果类型不同,则必然不相等
  13.         if (obj.GetType() != GetType()) return false;
  14.         //对比各个字段值
  15.         if (!Equals(Id, obj.Id) || !Equals(Name, obj.Name) || !List.EqualList(obj.List))
  16.             return false;
  17.         //如果基类不是从Object继承,需要调用base.Equals(other)
  18.         //如果从Object继承,直接返回true
  19.         return true;
  20.     }
  21.     public override int GetHashCode()
  22.     {
  23.         return StringComparer.InvariantCulture.GetHashCode(Id);
  24.     }
  25. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表