前一段時間們需要對一個List<Model>集合去重,情況是該集合中會出現多個Name屬性值相同的,但是其他屬性值不同的數據。 在這種情況下,需求要只保留其中一個就好。 我覺得遍歷和HashSet都不是我想要的,便採用了一下方式 定義Compare類,繼承IEqualityComparer介面 pu
前一段時間們需要對一個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();