马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、比力聚集
- /// <summary>
- /// 比较两个集合
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="list1"></param>
- /// <param name="list2"></param>
- /// <returns></returns>
- public static bool EqualList<T>(this List<T> list1, List<T> list2)
- {
- return list1 == null && list2 == null || list1 != null && list1.SequenceEqual(list2);
- }
复制代码 2、比力对象,对象实现IEquatable接口
- public class Model: IEquatable<Model>
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public List<string> List { get; set; }
- public bool Equals(Model obj)
- {
- //this非空,obj如果为空,则返回false
- if (ReferenceEquals(null, obj)) return false;
- //如果为同一对象,必然相等
- if (ReferenceEquals(this, obj)) return true;
- //如果类型不同,则必然不相等
- if (obj.GetType() != GetType()) return false;
- //对比各个字段值
- if (!Equals(Id, obj.Id) || !Equals(Name, obj.Name) || !List.EqualList(obj.List))
- return false;
- //如果基类不是从Object继承,需要调用base.Equals(other)
- //如果从Object继承,直接返回true
- return true;
- }
- public override int GetHashCode()
- {
- return StringComparer.InvariantCulture.GetHashCode(Id);
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |