class Program
{
static void Main(string[] args)
{
List<Persion> list = new List<Persion>
{
new Persion() {name="AA",age=20,address="XX"},
new Persion() {name="AA",age=21,address="X2"} ,
new Persion() {name="BB",age=20,address="XX"} ,
new Persion() {name="AA",age=20,address="XX"}
};
list = list.Distinct(new PersionCompare()).ToList();
}
public class PersionCompare : IEqualityComparer<Persion>
{
public bool Equals(Persion x, Persion y)
{
//Check whether the properties are equal.
return x.name == y.name && x.age == y.age && x.address == y.address;
}
public int GetHashCode(Persion obj)
{
if (Object.ReferenceEquals(obj, null))
{
return 0;
}
//Check whether the object is null
int name =obj.name.GetHashCode();
int age = obj.age.GetHashCode();
int address = obj.address == null ? 0 : obj.address.GetHashCode();
int hasCode = name ^ age ^ address;
return hasCode;
}
}
public class Persion
{
public string name { get; set; }
public int age { get; set; }
public string address { get; set; }
}
IEqualityComparer 使用Demo
最新推荐文章于 2021-10-02 23:26:27 发布