List集合去重的一种方法 z

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List集合去重的一种方法 z相关的知识,希望对你有一定的参考价值。

需要对一个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集合去重的一种方法 z的主要内容,如果未能解决你的问题,请参考以下文章

List集合去重的一些方法(常规遍历Set去重java8 stream去重重写equals和hashCode方法)

关于集合去重的学习总结

freemarker list集合去重,实现hashset

debug底层java代码,对list中的数据去重的正确姿势,及对比java list remove正确使用方法与错误使用

List 去重的 6 种方法,这种方法最完美!

js数组去重的四种方法