Linq获得独特的财产
这个问题在这里已经有了答案:
重写你的GetHashCode()
函数:
public int GetHashCode(MY_DATA_TABLE obj)
{
return obj.CODE.GetHashCode();
}
规则是,Equals和GetHashCode()
都应该检查相同的属性,并且只需检查GetHashCode()
中的Equals()
和whiole对象中的代码,
另一种选择是如果Version
不重要,则在每个组中进行一个组并取其中的第一个值。
var mapCodes = (from mtc in GetAllData()
group mtc by mtc.Code into grp
select grp.First()).ToList();
您可以使用MoreLinq的DistinctBy
var mapCodes = (from mtc in GetAllData()
select mtc).DistinctBy(x=>x.Code).ToList();
要不就:
var mapCodes = GetAllData().DistinctBy(x=>x.Code).ToList();
或者您可以按照注释中所述更正GetHashCode方法
链接地址: http://www.djcxy.com/p/51293.html