当前位置: 首页 > wzjs >正文

大型做网站公司长春站最新发布

大型做网站公司,长春站最新发布,王也道长高清头像黑白,网络公司运营是做什么的简介 在 C# 里&#xff0c;比较两个 List 是否相等&#xff0c;需要考虑多个方面&#xff0c;例如列表中的元素顺序、元素本身是否相等。下面介绍几种常见的比较方法&#xff1a; 基本类型比较&#xff08;元素顺序必须一致&#xff09; var list1 new List<int> { 1…

简介

C# 里,比较两个 List 是否相等,需要考虑多个方面,例如列表中的元素顺序、元素本身是否相等。下面介绍几种常见的比较方法:

基本类型比较(元素顺序必须一致)

var list1 = new List<int> { 1, 2, 3 };
var list2 = new List<int> { 1, 2, 3 };bool areEqual = list1.SequenceEqual(list2); // ✅ true

忽略顺序比较

var list1 = new List<int> { 1, 2, 3 };
var list2 = new List<int> { 3, 2, 1 };bool areEqual = list1.OrderBy(x => x).SequenceEqual(list2.OrderBy(x => x)); // ✅ true

或先分别排完序,再比较:

list3.Sort();
list4.Sort();
Console.WriteLine(list3.SequenceEqual(list4)); // 输出: True

复杂类型(自定义对象列表)

  • 实现 EqualsGetHashCode 方法
public class Person
{public string Name { get; set; }public int Age { get; set; }public override bool Equals(object? obj){if (obj is Person person){return Name == person.Name && Age == person.Age;}return false;}public override int GetHashCode(){return HashCode.Combine(Name, Age);}
}

使用:

Console.WriteLine(person1.SequenceEqual(person2)); // 输出: True
  • 自定义比较器:
public class Person
{public string Name { get; set; }public int Age { get; set; }
}
public class PersonComparer : IEqualityComparer<Person>
{public bool Equals(Person? x, Person? y){return x?.Name == y?.Name && x?.Age == y?.Age;}public int GetHashCode(Person obj){return HashCode.Combine(obj.Name, obj.Age);// 还有一种写法:// return obj.Name.GetHashCode() ^ obj.Age.GetHashCode();}
}

使用方式:

var list1 = new List<Person>
{new Person { Name = "Alice", Age = 25 },new Person { Name = "Bob", Age = 30 }
};var list2 = new List<Person>
{new Person { Name = "Alice", Age = 25 },new Person { Name = "Bob", Age = 30 }
};bool areEqual = list1.SequenceEqual(list2, new PersonComparer()); // ✅ true

判断是否完全包含对方(不关心顺序)

bool setEqual = list1.Count == list2.Count &&!list1.Except(list2).Any() &&!list2.Except(list1).Any();

使用 SetEquals(无序、无重复判断)

bool areEqual = new HashSet<int>(list1).SetEquals(list2);

或:

HashSet<int> set1 = new HashSet<int>(list3);
HashSet<int> set2 = new HashSet<int>(list4);bool isEqual = set1.SetEquals(set2);
Console.WriteLine(isEqual); // 输出: True

比较两个 null 列表

List<int>? list5 = null;
List<int>? list6 = null;
Console.WriteLine(list5 == list6); // 输出: True

比较两个包含null元素的列表

List<string?> list7 = new List<string?> { "a", null };
List<string?> list8 = new List<string?> { "a", null };
Console.WriteLine(list7.SequenceEqual(list8)); // 输出: True

性能优化建议

  • 小规模数据:使用 SequenceEqualHashSet

  • 大规模数据:

    • 先检查列表长度是否相同。
    • 使用并行化处理(如 AsParallel().SequenceEqual())。

总结

场景方法是否考虑顺序是否考虑重复次数
顺序敏感且内容相同SequenceEqual
顺序不敏感且内容相同HashSet.SetEquals
顺序不敏感但重复次数相同排序后使用 SequenceEqual
自定义对象比较重写 Equals 或使用 IEqualityComparer可配置可配置

文章转载自:

http://nythqUPZ.rksjz.cn
http://B5ZorEvW.rksjz.cn
http://IJq3Dp5h.rksjz.cn
http://PsimpZej.rksjz.cn
http://CeVfcqDV.rksjz.cn
http://9NSbiHfs.rksjz.cn
http://2IjSn2Vi.rksjz.cn
http://yMTGYxw5.rksjz.cn
http://m4qckQhG.rksjz.cn
http://H72FSIHF.rksjz.cn
http://JQLDPgSh.rksjz.cn
http://2HO2f8De.rksjz.cn
http://BgMOgqdk.rksjz.cn
http://NBI4uzvK.rksjz.cn
http://HWmdPMwM.rksjz.cn
http://fNt6YJHM.rksjz.cn
http://tT8izlnA.rksjz.cn
http://G4JMmos8.rksjz.cn
http://c4aN9Bf3.rksjz.cn
http://Xwtfp9rF.rksjz.cn
http://JbprKaPE.rksjz.cn
http://yj1YNQJc.rksjz.cn
http://2YTbU396.rksjz.cn
http://5EkSibE2.rksjz.cn
http://ObAj7n45.rksjz.cn
http://NREnfsmb.rksjz.cn
http://SyL5wiXR.rksjz.cn
http://GElgLsxf.rksjz.cn
http://vjQVhLno.rksjz.cn
http://rjCUimFj.rksjz.cn
http://www.dtcms.com/wzjs/719468.html

相关文章:

  • 济南网站开发设计室内设计效果图全景图
  • 宠物网站开发与实现结论济南饰品行业网站开发
  • 网站建设 保密利为汇wordpress
  • 天津网站备案有哪些做的好的营销型网站
  • 装修公司做自己网站网站建设xiduyun
  • 保之友微网站怎么建中国十大品牌网
  • 北京市中交建设有限公司网站为什么明明有网却打不开网页
  • 网站正则表达式怎么做东莞工业品网站建设
  • 网站建设狼雨网站设计标杆企业
  • 最火爆的国际贸易网站服装设计需要学什么科目
  • 手机网站建设制作教程视频WordPress网页编辑插件
  • 摩托车专业网站四川seo选哪家
  • 南阳网站建设推广微信公众号链接wordpress
  • 网站产品链接怎么做的企业网站建设的目的
  • 英文网站seo 谷歌教育培训网站模板下载
  • 在凡科做网站编辑php做电子商务网站的种类
  • 建设网上银行官方网站海南网站建设优化排名
  • 网页建站总结报告西安百度推广电话
  • 国家关于网站信息建设管理文件网站建设的优点
  • 网站建设 泰安自学软件网站开发
  • 服装型网站开发万江区网站仿做
  • 有没有专门做一件代发的网站体彩网站开发
  • 如何个网站做优化施工企业介绍
  • 分类网站建设方案北京大兴网站建设公司咨询
  • 焦作网站建设价格深圳企业网站备案
  • 泉州做网站便宜网站建设全网营销
  • 网站建设助手建网站要买服务器吗
  • 一级做A网站wordpress如何采集电影
  • 商城网站续费要多少钱ui设计加班很严重
  • 网站做链接算侵权吗开发微信小程序收费吗