您的位置:首页 > 编程语言 > C#

C# IEqualityComparer 去重

2016-11-18 13:54 363 查看
1、去除list里某重复字段值的数据(相当于group by)

public class CorrController
{
//方法
public void DoGet()
{
List<test11> list_test = new List<test11>();
list_test.Add(new test11()
{
m = 1,
v = "one"
});
list_test.Add(new test11()
{
m = 2,
v = "two"
});
list_test.Add(new test11()
{
m = 3,
v = "three"
});
list_test.Add(new test11()
{
m = 4,
v = "fornt"
});
list_test.Add(new test11()
{
m = 4,
v = "fornt"
});
list_test.Add(new test11()
{
m = 3,
v = "fornt"
});
var ss = list_test.Distinct(new Comparint());//这里调用
}

}

//model
public class test11
{
public int m { get; set; }
public string v { get; set; }
}
//
public class Comparint : IEqualityComparer<test11>
{
public bool Equals(test11 x, test11 y)
{
if (x == null && y == null)
return false;
return x.m == y.m;
}

public int GetHashCode(test11 obj)
{
return obj.ToString().GetHashCode();
}
}


执行Distinct前有6条数据:



执行Distinct后有4条数据:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: