写点什么

详解.NET 的求复杂类型集合的差集、交集、并集

  • 2022 年 7 月 28 日
  • 本文字数:488 字

    阅读完需:约 2 分钟

详解.NET的求复杂类型集合的差集、交集、并集

前言如标题所述,在http://ASP.NET应用程序开发中,两个集合做比较时 我们使用微软 IEnumerable 封装的 Except/Intersect/Union 取 差集/交集/并集 方法是非常的方便的;但以上对于不太熟悉的小伙伴来讲,在遇到求包含引用类型(不包含 string)集合时就非常的苦恼;下面我将带着大家去了解如何通过微软自带方法方式去取**复杂类型集合**的差集、交集、并集。场景这里是场景,我有以下两个学生集合。

生成两个实体集合;下面我们取交集/差集/并集完整调用示例(.NET Core):

  以上输出仔细看一下明显是不对的,这就涉及到了复杂类型对比,请看代码:正常我们声明的类

因为我们要对比的是引用类型,因为在对比除 string 引用类型外,其他引用类型的对比默认都是对比的堆里地址,所以我们要实现一个自定义的对比方案我们需要继承一个接口 IEqualityComparer<T> 泛型接口如下:(这里我们以年龄与名做为对比条件)

修改了类后还有最重要的一点:就是修改比较的方法(相当于声明一个自定义的比较器给方法)

到这里引用类型的比较已经完成了,比较器的条件方法可以根据需求调整,如有不足之处,希望大家多多指正!!!

只有努力把自己变得更优秀,才能更好的生活

用户头像

不定期更新Java开发工具及Java面试干货技巧 2021.12.12 加入

Java后端工程师,十年大厂经验。具有扎实的Java、JEE基础知识。熟悉Spring、SpringMVC、Struts MyBatisHibernate等JEE常用框架。

评论

发布
暂无评论
详解.NET的求复杂类型集合的差集、交集、并集_java 14_了不起的程序猿_InfoQ写作社区