前一段时间们需要对一个List<Model>集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据。

在这种情况下,需求要只保留其中一个就好。

我觉得遍历和HashSet都不是我想要的,便采用了一下方式

定义Compare类,继承IEqualityComparer接口

public class ComparerHelper : IEqualityComparer<Model>{public bool Equals(Model x, Model y){return x.Name== y.Name;}public int GetHashCode(Model obj){return obj.Title.GetHashCode();}}

调用如下:

modelList = modelList.Distinct(new ComparerHelper()).ToList();

List集合去重的一种方法相关推荐

  1. python list去重时间复杂度_List集合去重的一种方法 z

    需要对一个List集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和HashSet都不是我想要的,便采用了一下方 ...

  2. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

  3. List 集合去重的 3 种方法

    问题由来 在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象. 比较暴力的方法,就是根据 ...

  4. java hashmap 去重_java数组去重的两种方法

    我们对于数组元素的使用,有时候在创建数组的初期,并没有考虑过元素的重复问题.当我们想要不重复元素的数组时,就要再进行一步去重的工作.数组的去重有两种方法可以实现,一个是循环比较,另一个是hashSet ...

  5. Python列表去重的几种方法和实例

    Python列表去重的几种方法和实例 在 Python 中,列表去重有多种方法,下面分别介绍这些方法的实现. 方法一:使用 set() 函数 set() 函数可以将列表转换成集合,集合中不允许有重复的 ...

  6. 【知识学习】C# List<T>取并集并去重的两种方法时间消耗比较

    C# List<T>取并集并去重的两种方法时间消耗比较 文章目录 C# List\取并集并去重的两种方法时间消耗比较 前言 一.两种方法 二.时间计算方法 1.Stopwatch 三.数据 ...

  7. List集合去重的几种方式

    List集合去重的几种方式 1. 通过set集合的特性,集合元素的唯一性 public static List heavyListMethod01(List list){         Set se ...

  8. java数组去重方法是,java数组去重的两种方法

    我们对于数组元素的使用,有时候在创建数组的初期,并没有考虑过元素的重复问题.当我们想要不重复元素的数组时,就要再进行一步去重的工作.数组的去重有两种方法可以实现,一个是循环比较,另一个是hashSet ...

  9. python列表去重的两种方法

    python列表去重的两种方法 1. 使用循环进行遍历,将重复的元素去掉. def test1():lst = [1,2,5,6,3,5,7,3]tmp = []for it in lst:if it ...

最新文章

  1. AI实验室•西安站 教你用人脸识别打造爆款应用
  2. 《javascript高级程序设计》笔记:内存与执行环境
  3. 基于区块链的健康链系统设计与实现(2)区块链平台Web服务器
  4. spring boot多模块项目一个模块引用另一个模块的实体类报错空指针
  5. 安卓学习第37课——DatePickerDialog、TimePickerDialog
  6. json_encode ajaxReturn getJSON
  7. VirtualBox复制虚拟机
  8. SDN时代更需要有保障的网络
  9. php和其他语言的区别,为什么说php是弱类型好学,跟其他语言的区别
  10. ajax里面success函数return上层接收不到
  11. java实现打开新窗口_[Java教程]javascript 打开新窗口(window.open)
  12. Linux 命令tar
  13. kali-网站克隆工具-httrack
  14. 51单片机矩阵键盘控制数码管
  15. QT5使用PCAN读取CAN数据
  16. C# Activator实例化类的一般步骤
  17. 怎样用python制表_用Python绘图和制表(附泰坦尼克号案例)
  18. Linux命令行下使用飞信
  19. During sturtup program exited with code 0xc0000139的解决办法!
  20. Vlan和pvlan全面解析

热门文章

  1. RR隔离级别下通过next-key locks 避免幻影读
  2. NHibernate初学二之简单执行SQL及HQL、Linq
  3. STL区间成员函数及区间算法总结
  4. EMC_AutoStart5.4安装配置之五
  5. JDBC常用连接写法(包括MySQL、Oracle、Sybase、SQLServer、DB2)
  6. PowerShell入门
  7. mysql正在加载_本地坏境或者服务器环境下phpmyadmin出现始终正在加载问题的解决方法...
  8. 5G NPN 行业专网 — 媒体行业 5G 专网部署方案
  9. 架构师之路 — API 经济 — 权限管理系统(分权分域设计)
  10. 开关电源输出整流二极管