IT评测·应用市场-qidao123.com技术社区
标题:
C# 比力两个聚集和比力对象
[打印本页]
作者:
徐锦洪
时间:
2024-10-13 22:12
标题:
C# 比力两个聚集和比力对象
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4