摘要:
Linq的Distinct含义就是去除重复项,那么如何定义重复项呢?微软给出了默认的方案:给出一个IEqualityComparer<T>的实例。如果你不传IEqualityComparer<T>的实例,那么默认是比较引用。这个方案很不方便,详见:Linq的Distinct太不给力了鹤冲天 给出了他的方案,c# 扩展方法奇思妙用基础篇八:Distinct 扩展受到启发,我们可以从0开始构造自己的扩展。其实说白了就是传一个委托,委托可以获取属性,根据那个属性(比如ID)来进行比较。第一版: public static class DistinctExtensions { 阅读全文