C# 比较两个集合和比较对象

devtools/2024/10/19 2:24:56/

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如果为空,则返回falseif (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继承,直接返回truereturn true;}public override int GetHashCode(){return StringComparer.InvariantCulture.GetHashCode(Id);}
}

http://www.ppmy.cn/devtools/125337.html

相关文章

消息队列面试题——第二篇

1. rocketmq、rabbitmq、kafka的区别 架构设计和消息模型 特性rocketmqrabbitmqkafka消息模型基于主题和消费组&#xff0c;支持发布/订阅和点对点两种模型基于队列模型&#xff0c;支持发布/订阅和点对点两种模型基于分区的主题模型&#xff0c;主要用于日志流式处理和高吞吐…

awk脚本通过将多行拼接成一行并在 SQL 语句的末尾遇到分号(;)时打印出来

concact_sql.awk 脚本如下 {if ($0 ~ /^SELECT|UPDATE|DELETE|INSERT/) {flag 1buffer ""gsub(/\n/, "", $0)cli $0} else if (flag) {if ($0 ~ /;/) {flag 0print cli buffer $0} else {buffer buffer $0}} else if (flag 0) {print $0} } 这个 aw…

position定位静态定位/绝对定位/相对定位

1.静态定位static&#xff1a;按照标准流进行布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

LP笔试record

1. 这四个选项中&#xff0c;不正确的描述是&#xff1a; “当进程中的一个用户线程被阻塞时&#xff0c;整个进程并不用等待。” 理由&#xff1a; 采用轮转调度算法&#xff0c;进程中设置内核线程和用户线程的效果完全不同 这个描述是正确的。用户线程和内核线程在操作系…

【C++打怪之路Lv8】-- string类

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

雷池社区版本SYSlog使用教程

雷池会对恶意攻击进行拦截&#xff0c;但是日志都在雷池机器上显示 如何把日志都同步到相关设备进行统一的管理和分析呢&#xff1f; 如需将雷池攻击日志实时同步到第三方服务器, 可使用雷池的 Syslog 外发 功能 启用 Syslog 外发 进入雷池 系统设置 页面, 配置 Syslog 设置…

基于java的企业车辆管理系统设计与实现(论文+源码)-kaic

摘 要 随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。现有的车辆管理系统存在着不足之处&#xff0c;例如系统不够稳定&#xff0c;功能不够全面。因此&#xff0c…

facebook受众选择设置策略的最佳方式

在进行Facebookguanggao投放时&#xff0c;受众的选择是一个至关重要的步骤。正确的受众选择不仅能够帮助我们更好地定位目标用户&#xff0c;还能显著提高guanggao的转化率和投资回报率&#xff08;ROI&#xff09;。然而&#xff0c;受众选择的数量和范围同样是需要认真考虑的…