前一段时间们需要对一个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();