C# List Distinct

不太清楚微软为啥给泛型List提供了Distinct扩展, 却非要传递一个Compare型的参数, 为啥不是一个委托呢?
好麻烦啊, 只能实现那个接口...

ExpandedBlockStart.gif 代码
 1  #region  过滤重复数据
 2  public   delegate   bool  EqualsComparer < T > (T x, T y);
 3  ///   <summary>
 4  ///  过滤重复数据
 5  ///   </summary>
 6  public   class  Comparint < T >  : IEqualityComparer < T >
 7  {
 8       private  EqualsComparer < T >  ec;
 9       public  Comparint() { }
10       public  Comparint(EqualsComparer < T >  e)
11      {
12           this .ec  =  e;
13      }
14       #region  IEqualityComparer<BudgetBE> 成员
15 
16       public   bool  Equals(T x, T y)
17      {
18           if  ( null   !=   this .ec)
19               return   this .ec(x, y);
20           else
21               return   false ;
22      }
23 
24       public   int  GetHashCode(T obj)
25      {
26           return  obj.ToString().GetHashCode();
27      }
28 
29       #endregion
30  }
31  #endregion

 


使用时:

1  list.Distinct( new  Comparint < 自定义类型 > (
2       delegate  (自定义类型 x, 自定义类型 y)
3      {
4           if  ( null   !=  x  &&   null   !=  y)
5               return  x.属性  ==  y.属性;
6           return   false ;
7      }
8  ));

 

 

转载于:https://www.cnblogs.com/tonykent/archive/2010/03/01/1675716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值