首先,我们定义一个Student类来测试.
public classStudent
{public int ID { get; set; }public string Name { get; set; }public int Age { get; set; }
}
List data = new List{new Student(){ID=1,Name="名字1",Age=15},new Student(){ID=1,Name="名字2",Age=15},new Student(){ID=3,Name="名字3",Age=17},new Student(){ID=4,Name="名字4",Age=18},new Student(){ID=5,Name="名字5",Age=19},new Student(){ID=6,Name="名字6",Age=20}
};
在这样一个数据中. 我们发现,如果使用自带的 Distinct ,发现得数据依然是一样,并没有想象中的去除重复。
以下,给出几个解决方案。
第一种: 继承EqualityComparer
我们新建一个类。如下。且必须重写父类中的抽象方法。Equals和GetHashCode
public class StudentComparer : EqualityComparer{public override boolEquals(Student s1, Student s2)
{//这里写你要去除重复的条件。
return